+ (or
+ (and (memq (car spec) '(=ucs@unicode '=ucs@iso))
+ (cond
+ ((and (or (encode-char char '=jis-x0208@1990)
+ (encode-char char '=jis-x0212)
+ (encode-char char '=jis-x0213-1))
+ (setq code (encode-char char '=ucs@jis)))
+ (format "u%04x" code)
+ )
+ ((and (or (encode-char char '=gb2312)
+ (encode-char char '=gb12345))
+ (setq code (encode-char char '=ucs@gb)))
+ (format "u%04x-g" code)
+ )
+ ((and (or (encode-char char '=cns11643-1)
+ (encode-char char '=cns11643-2)
+ (encode-char char '=cns11643-3)
+ (encode-char char '=cns11643-4)
+ (encode-char char '=cns11643-5)
+ (encode-char char '=cns11643-6)
+ (encode-char char '=cns11643-7))
+ (setq code (encode-char char '=ucs@cns)))
+ (format "u%04x-t" code)
+ )
+ ((and (encode-char char '=ks-x1001)
+ (setq code (encode-char char '=ucs@ks)))
+ (format "u%04x-k" code)
+ )))
+ (format (format "%s%%0%d%s%s"
+ (nth 1 spec)
+ (nth 2 spec)
+ (nth 3 spec)
+ (or (nth 4 spec) ""))
+ ret)))))