请问lisp输出文本格式哪里设置编码utf-8
请问lisp输出文本格式哪里设置编码utf-8 ,编辑电话号码gb的中文名字不行,现在手动重新保存UTF-8格式,如果能设置下更好,其实这个用的很少,wps打开文本格式的csv,保存后老是加了字符串: “122,快快快”实际是:122,快快快,所有不用他直接用lisp算了。
;;将字符串保存为UTF-8编码的文件(不带BOM)
(defun try-str-write-UTF-8 (str file / binarystream filestream size)
(setq filestream (vlax-create-object "Adodb.Stream"))
(vlax-put-property filestream 'Type 2) ; 1二进制读取 2文本模式读取
(vlax-put-property filestream 'Mode 3) ; 1-读,2-写,3-读写
(vlax-put-property filestream 'Charset "utf-8") ; 设置编码为UTF-8
(vlax-invoke filestream 'Open)
(vlax-invoke filestream 'WriteText str)
(vlax-put-property filestream 'Position 3) ; 将位置重置为起始位置(这个3是用来去除BOM的)
(setq size(vlax-get-Property filestream 'size))
(setq binarystream (vlax-create-object "Adodb.Stream"))
(vlax-put-property binarystream 'Type 1) ; 设置为二进制模式
(vlax-invoke binarystream 'Open)
(vlax-invoke filestream 'CopyTo binarystream (- size 3))
(vlax-invoke binarystream 'SaveToFile file 1)
(vlax-invoke binarystream 'flush)
(vlax-invoke binarystream 'Close)
(vlax-release-object filestream)
(vlax-release-object binarystream)
) 我读了5遍,没看懂要干啥 煮茗 发表于 2024-12-27 19:06
我读了5遍,没看懂要干啥
请问lisp输出文本格式哪里设置编码utf-8 ,编辑电话号码gb的中文名字不行,现在手动重新保存UTF-8格式,如果能设置下更好,我的意思就lisp 输出xx.csv 我们平时只写出文件就行了,我是用于修改手机通讯录他的格式要UTF-8 格式的csv, (其实这个csv>可以转Excel>再转 vcf. excel 处理的老是有问题,所以我纯lisp处理),这个用得少,没解决这个也无所谓,手动保存一下也没事。 我的意思输出 xx.csv时能控制设置为: UTF-8 ,默认的好像是gb..... 正常记事本打开: aa,123
WPS或excel打开csv后保存csv,再用记事本打开是这样: “aa,123” 前后多了字符串标识。如果这样要保存为: xls格式再转vcf ,因为前后多了字符串标识,还要删除处理,不用他们处理了。
直接用 csv格式变vcf, lisp输出的csv默认不是UTF-8
lisp的getfiled函数不能设置保存格式编码的 ssyfeng 发表于 2024-12-27 22:07
lisp的getfiled函数不能设置保存格式编码的
谢谢,原来没有这个选项,我输出这个也用得少,
也无所谓,手动保存下。😁😁 tryhi 发表于 2025-1-2 09:55
;;将字符串保存为UTF-8编码的文件(不带BOM)
(defun try-str-write-UTF-8 (str file / binarystream filest ...
感谢大佬出手,能解决更好,其实这个我也用得少。 这个lisp也是有味,保存为UTF-8的txt中文内容文本,直接运行(vl-string-search “哈哈” “哈哈看看” )居然不行,还要把文本保存为ANSI.
页:
[1]