utf8文本读入后,加入内容后,输出中文变乱码
本帖最后由 lixuedong 于 2014-2-21 23:13 编辑我有一文本,里面有中文。是正常的。
我用一个lisp程序,在文本前面加中文。加进去的中文是正常,原来的变成乱码。
(setvar "TEXTOUTPUTFILEFORMAT" 1)
(setq txt_row1 (vl-list->string'(68 58 92 91 120 121 122 95 200 237 188 254 92)))
(setq txt_row2 txt_row1 )
(setq txt_row1 (strcat txt_row1
"2012cadlsp"
(chr 59)
txt_row1
"99lsp"
(chr 59)
txt_row1
"acadfonts"
(chr 59)
txt_row1
"hlp"
(chr 59)
txt_row1
"函数库"
(chr 59)
txt_row1
"99lsp\\dwg_ss"
(chr 59)
"</Value>"
)
)
(write-line txt_row2 f_txt1)
(write-line txt_row1 f_txt1)
(write-line "" f_txt1)
(write-line "" f_txt1)
(setq f_txt (open (findfile "xyz_old.txt") "R"))
(setq f_txt1 (open (findfile "xyz.txt") "W"))
(while (setq txt_row (read-line f_txt))
(print txt_row)
(write-line txt_row f_txt1)
)
(close f_txt)
(close f_txt1)
==================================================
如果先写原有文字,后加新的,新的文字是就会乱码。情况和刚才的是相反的。
如果只是其中一种,打开的中文都是正常的。
xyz_old.txt" 的是 utf8编码
cad输出的文件xyz.txt是ansi编码(cad默认是ansi)
TEXTOUTPUTFILEFORMAT
类型: 整数 保存位置: 图形 初始值: 0 提供日志文件的 Unicode 选项。 0 ANSI 格式 1 UTF-8 (Unicode) 2 UTF-16LE (Unicode) 3 UTF-16BE (Unicode)
(setvar "TEXTOUTPUTFILEFORMAT" 1 );改成utf8
但输出的xyz.txt 还是ansi编码
怎么样让它们的文字编码一致。或者让输出是utf8编码的文件?
;;试试
本帖最后由 lixuedong 于 2014-2-21 22:45 编辑
xyp1964 发表于 2014-2-21 22:10 static/image/common/back.gif
;;试试
程序的运行是差不多的。
xyz_old.txt这个文件,你已改成 ANSI 格式,
xyz_old.txt为 utf8 格式,一样不行的。
变成同一个类型,我的程序也行的,不会乱码。
我希望的是输出文件是utf8编码的,输出文件的格式为utf8编码的。 本帖最后由 lixuedong 于 2014-2-21 23:24 编辑
增加一个D:\xyz_utf8.txt的文件(编码是utf8),再通过lisp读进了,虽然查看到是乱码。但“输入文件”和“增加的文字”保持一致了。所以输出的文件,也是utf8编码。
办法比较笨了,至少问题解决了。是个变通的办法。
(defun c:tt (/)
(setq f_txt (open "D:\\xyz_utf8.txt" "R"))
(setq txt_row1 (read-line f_txt))
(close f_txt)
(setq f_txt (open (findfile "xyz_old.txt") "R"))
(setq f_txt1 (open (findfile "xyz.txt") "W"))
(write-line txt_row1 f_txt1)
(write-line "" f_txt1)
(write-line "" f_txt1)
(while (setq txt_row (read-line f_txt))
(print txt_row)
(write-line txt_row f_txt1)
)
(close f_txt)
(close f_txt1)
)
xyz_utf8.txt
期待解决办法 0.0
Xml的解析可以直接调用Dom
百度个vb处理xml的例子改写试试吧 雪山飞狐_lzh 发表于 2016-2-4 00:57 static/image/common/back.gif
0.0
Xml的解析可以直接调用Dom
百度个vb处理xml的例子改写试试吧
没明白,dom应用没用过,我想得到utf8的文档 用write-line 或者autolisp可以调用的其他方法??? 本帖最后由 Gu_xl 于 2016-2-4 09:21 编辑
加载XLRX_API
XLRX-File-ReadText
功能:读取ANSI/UNICODE/UTF8文本文件内容
语法: (XLRX-File-ReadText Filename )
参数:
filename 文件名称
flag 提供且不为nil,则文本按行返回字符串列表
返回值: 成功返回字符串或按行返回字符串列表
XLRX-File-SaveTextStr
功能:将文本字串保存为ANSI/UNICODE/UTF8文本文件
语法: (XLRX-File-TextSave strBuf/strList filename )
参数:
strBuf/strList 文本字符串/字符串列表
filename 要保存的文件名称
type 文本文件类型,可选参数,type:0=ANSI格式 1=UNICODE格式 2 =UTF8格式
返回值: 成功返回T,否则返回nil
页:
[1]