robierzo 发表于 2022-7-5 18:08:04

生成带有编码UT的文件

通常,当我使用Lisp创建文本文件时,默认情况下始终显示ANSI编码。
但我需要生成一个编码为UTF-8的文本文件。
这可能吗?
非常感谢。

Lee Mac 发表于 2022-7-5 18:14:47

使用AutoLISP将Unicode写入文本文件

robierzo 发表于 2022-7-5 18:18:49

李,用你的例程生成了一个“Unicode”文件。但我需要一个UTF-8格式的文件。
我不需要代码。只是一个UTF-8格式的空文件。
 
 

Lee Mac 发表于 2022-7-5 18:21:35

例子:

;; Empty UTF-8 Text File-Example by Lee Mac

(defun emptyutf8 ( txt / fso stm )
   (if (setq fso (vlax-create-object "scripting.filesystemobject"))
       (progn
         (vl-catch-all-apply
            '(lambda ( )
                   (setq stm (vlax-invoke fso 'createtextfile txt -1 0))
                   (vlax-invoke stm 'write (vl-list->string '(239 187 191)))
                   (vlax-invoke stm 'close)
               )
         )
         (if (= 'vla-object (type stm))
               (vlax-release-object stm)
         )
         (if (= 'vla-object (type fso))
               (vlax-release-object fso)
         )
         (findfile txt)
       )
   )
)
(defun c:test ( )
   (emptyutf8 (vl-filename-mktemp "utf.txt" (getvar 'dwgprefix)))
)

robierzo 发表于 2022-7-5 18:27:02

李·麦克。Eres un auténtico genio!!!!Te debo un litro de cerveza“estrella de Galicia”。穆查斯·格雷西亚。
 
李·麦克。你是个天才!!!!我欠你一品脱啤酒“Estrella de Galicia”。非常感谢。非常感谢。非常感谢。

Lee Mac 发表于 2022-7-5 18:29:53

非常欢迎你robierzo,很乐意帮忙。

robierzo 发表于 2022-7-5 18:34:38

李,你好。我检测到一个错误。
重音字母拼错了。
示例:áéíóúÁÍÓÚÜ
在这些情况下,写一个符号:�
:(

Lee Mac 发表于 2022-7-5 18:36:30

我发布的代码只是创建了一个空的文本文件-你用什么代码来写这个文件?

robierzo 发表于 2022-7-5 18:42:27

我使用命令在创建的文件中写入以下内容
(write-line "Autor: Roberto González Gómez. Ingeniero Técnico en Topografía\n" my_file)
但是文件类型:Autor:Roberto Gonz�列兹G�mez。Ingeniero T�cnico en Topograf公司�一
文本到utf。txt文件

Lee Mac 发表于 2022-7-5 18:44:21

写行函数是为ASCII字符集设计的,用于写入ANSI编码的文本文件;为了写入UTF-8编码的文本文件,您需要使用类似于上面提供的链接中的示例代码所演示的方法,遵循UTF-8编码标准(即,使用一些由多个字节组成的字符)。
页: [1] 2
查看完整版本: 生成带有编码UT的文件