明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 417|回复: 9

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

[复制链接]
发表于 2024-12-27 18:25:53 | 显示全部楼层 |阅读模式
10明经币
请问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) ( ...
回复

使用道具 举报

发表于 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遍,没看懂要干啥
回复

使用道具 举报

 楼主| 发表于 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处理),这个用得少,没解决这个也无所谓,手动保存一下也没事。
回复

使用道具 举报

 楼主| 发表于 2024-12-27 21:11:54 | 显示全部楼层
我的意思输出 xx.csv时能控制设置为: UTF-8   ,默认的好像是gb.....
回复

使用道具 举报

 楼主| 发表于 2024-12-27 21:20:52 | 显示全部楼层
正常记事本打开:   aa,123

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


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

使用道具 举报

发表于 2024-12-27 22:07:55 | 显示全部楼层
lisp的getfiled函数不能设置保存格式编码的
回复

使用道具 举报

 楼主| 发表于 2024-12-28 00:27:18 | 显示全部楼层
ssyfeng 发表于 2024-12-27 22:07
lisp的getfiled函数不能设置保存格式编码的

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

使用道具 举报

 楼主| 发表于 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 ...

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

使用道具 举报

 楼主| 发表于 2025-1-5 16:22:56 | 显示全部楼层
这个lisp也是有味,保存为UTF-8的txt中文内容文本,直接运行(vl-string-search “哈哈” “哈哈看看” )居然不行,还要把文本保存为ANSI.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-1-23 00:49 , Processed in 0.177394 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表