全角和半角字符转换

emacs vs emacs

  • 全角转半角 M-x translate-region chunyang-fullwidth-to-halfwidth
  • 半角转全角 M-x translate-region chunyang-halfwidth-to-fullwidth

(define-translation-table 'chunyang-fullwidth-to-halfwidth
  (let ((table (make-char-table 'translation-table)))
    (cl-loop for fullwidth from #xFF01 to #xFF5E
             for halfwidth from #x21 to #x7E
             do (aset table fullwidth halfwidth))
    table))

(define-translation-table 'chunyang-halfwidth-to-fullwidth
  (let ((table (make-char-table 'translation-table)))
    (cl-loop for fullwidth from #xFF01 to #xFF5E
             for halfwidth from #x21 to #x7E
             do (aset table halfwidth fullwidth))
    table))

注意上面的对应关系:全角 (#xFF01, #xFF5E) <=> 半角 (#x21, #x7E),并不完整,完整的参考:

2 个赞