1291500406 发表于 2022-7-4 13:42:11

字符的全角与半角 bb-qq

本帖最后由 1291500406 于 2022-7-4 13:49 编辑

(defun BB-str-ToSBC (str)
(vl-list->string
    (apply 'append
      (mapcar
      '
      (lambda
          (x)
          (cond
            ((= x 32)'(161 161))
            ((<= 33 x 125)(list 163 (+ x 128)))
            ((= x 126)(list 161 171))
            (t (list x))
          )
      )
      (vl-string->list str)
      )
    )
)
)
(BB-str-ToSBC"我爱你I LOVE YOU i love you 1314520")
;"我爱你I LOVE YOU i love you 1314520"




(defun BB-str-ToDBC (str / lst c)
(setq lst(vl-string->list str ))
(setq c 0)
(vl-list->string
    (vl-remove nil
    (mapcar
      '
      (lambda
          (a )
          (setq lst (cdr lst))
            (cond
            ((and(= a 161)(= (car lst) 161) )(setq c 1)32)
            ((and(= a 163)(<= 161 (car lst) 253)) (setq c 1)(- (car lst) 128))
            ((and(= a 161) (= (car lst) 171) )(setq c 1)126)
            (t   
                (IF (zerop c)
                  (progn   
                  (setq c 0)
                  a
                  )
                  (progn
                  (setq c 0)
                  nil
                  )
                )
            )
            )
      )
      lst
      )
      )
)
)
(BB-str-ToDBC"我爱你I LOVE YOU i love you 1314520")
;"我爱你I LOVE YOU i love you 1314520"




Grgogo 发表于 2022-7-4 14:16:48

:D啥作用啊,大佬
页: [1]
查看完整版本: 字符的全角与半角 bb-qq