rodrigo_sjc_sp 发表于 2022-7-6 06:10:08

用字符读取文本文件

我有这个密码
 

   (setq arq (open (findfile ".resa.cfg") "r"))
   (setq cor_nova (read-line arq))
   (setq nome_lay (read-line arq))
   (close arq)

 
如果这个值是nome_lay,他会用一些不同的字符将一些符号放置到位。
 
样品
Sinalizaão=SinalizaçÃo
 
 
 
 
 
 
 
 
 
如何在读取文本文件时设置字符集?

hmsilva 发表于 2022-7-6 06:18:50

我无法复制这种行为,用“Sinalização”和“Paramétrico”测试,读取文件并正确创建新层。。。
 
“.resa.cfg”文件是一个简单的txt文件?
或者你可能有一些格式化字符?
 
亨里克

Lee Mac 发表于 2022-7-6 06:25:30

可能是Unicode文件吗?

rodrigo_sjc_sp 发表于 2022-7-6 06:26:57

它是一个简单的文本文件(.Txt),包含
写着“Sinalizaão”的一行
 
 
当lisp读取内容时,它返回SinalizaçÃo
 
我需要的是,当Lisp读取此文件时,它会
带上正确的文字“Sinalizaão”

rodrigo_sjc_sp 发表于 2022-7-6 06:34:24

“.resa.cfg”=简单文本文件
 
. resa。cfg公司
334859
Sinalizaão
 
 
第1行包含334859
第2行包含Sinalizaão

Lee Mac 发表于 2022-7-6 06:41:37

 
你能上传文件供我们测试吗?

rodrigo_sjc_sp 发表于 2022-7-6 06:43:31

我已附上文件。
 
我重新命名了。的Cfg。Cfg。txt获取上传。只需重命名它(.Cfg)。
.resa。cfg。txt文件

Lee Mac 发表于 2022-7-6 06:50:26

 
正如我所料,该文件是Unicode(UTF-)。

rodrigo_sjc_sp 发表于 2022-7-6 06:54:15

有没有办法正确读取这个文件?

Lee Mac 发表于 2022-7-6 07:00:57

 
由于您的文件可以用ANSI编码(因为您只使用扩展ASCII集中的字符),最简单的选择是使用ANSI编码的文本文件,而不是UTF-8,然后可以使用AutoLISP read line函数成功读取。
 
如果需要文件保持Unicode UTF-8编码,则需要将文件作为二进制流读取(类似于本例的相反部分),因为AutoLISP无法读取Unicode字符。
页: [1] 2
查看完整版本: 用字符读取文本文件