434939575 发表于 2024-12-27 18:25:53

请问lisp输出文本格式哪里设置编码utf-8

请问lisp输出文本格式哪里设置编码utf-8 ,编辑电话号码gb的中文名字不行,现在手动重新保存UTF-8格式,如果能设置下更好,其实这个用的很少,
wps打开文本格式的csv,保存后老是加了字符串: “122,快快快”实际是:122,快快快,所有不用他直接用lisp算了。


tryhi 发表于 2024-12-27 18:25:54

;;将字符串保存为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)       
)

煮茗 发表于 2024-12-27 19:06:47

我读了5遍,没看懂要干啥

434939575 发表于 2024-12-27 21:09:27

煮茗 发表于 2024-12-27 19:06
我读了5遍,没看懂要干啥

请问lisp输出文本格式哪里设置编码utf-8 ,编辑电话号码gb的中文名字不行,现在手动重新保存UTF-8格式,如果能设置下更好,我的意思就lisp 输出xx.csv 我们平时只写出文件就行了,我是用于修改手机通讯录他的格式要UTF-8 格式的csv, (其实这个csv>可以转Excel>再转 vcf. excel 处理的老是有问题,所以我纯lisp处理),这个用得少,没解决这个也无所谓,手动保存一下也没事。

434939575 发表于 2024-12-27 21:11:54

我的意思输出 xx.csv时能控制设置为: UTF-8   ,默认的好像是gb.....

434939575 发表于 2024-12-27 21:20:52

正常记事本打开:   aa,123

WPS或excel打开csv后保存csv,再用记事本打开是这样:   “aa,123” 前后多了字符串标识。如果这样要保存为: xls格式再转vcf ,因为前后多了字符串标识,还要删除处理,不用他们处理了。


直接用 csv格式变vcf, lisp输出的csv默认不是UTF-8

ssyfeng 发表于 2024-12-27 22:07:55

lisp的getfiled函数不能设置保存格式编码的

434939575 发表于 2024-12-28 00:27:18

ssyfeng 发表于 2024-12-27 22:07
lisp的getfiled函数不能设置保存格式编码的

谢谢,原来没有这个选项,我输出这个也用得少,
也无所谓,手动保存下。😁😁

434939575 发表于 2025-1-2 10:20:10

tryhi 发表于 2025-1-2 09:55
;;将字符串保存为UTF-8编码的文件(不带BOM)
(defun try-str-write-UTF-8 (str file / binarystream filest ...

感谢大佬出手,能解决更好,其实这个我也用得少。

434939575 发表于 2025-1-5 16:22:56

这个lisp也是有味,保存为UTF-8的txt中文内容文本,直接运行(vl-string-search “哈哈” “哈哈看看” )居然不行,还要把文本保存为ANSI.
页: [1]
查看完整版本: 请问lisp输出文本格式哪里设置编码utf-8