|
都知道是编码问题,重点是,这个文件不存在,由这个组件创建出来,必定是ANSI编码格式,直接写入内容则是UTF16编码,需要自己先把这个组件创建的文件格式转换为UTF16后才能写入内容,否则乱码。 |
| 编码问题啊 |
80805777 发表于 2024-1-25 17:19 ANSI 没有 BOM,UTF-8 有,可以说是微软搞出来的,所以 Windows 里基本都认,但 Linux 那边不认可 UTF-8 的 BOM,可能会被识别为乱码。 |
80805777 发表于 2024-1-25 17:19 我用的方法是把有标志的先识别出来,剩下的当UTF8转换,如果转换时有超过1个字符无法转换的那么就是ansi |
tmf19901124 发表于 2024-1-25 12:35 utf8和ansi的文本文件没文件头 |
Xelloss0618 发表于 2024-1-25 14:22 目前就是这样处理的,只是需要自己写代码处理有点别扭。 |
曼菲士 发表于 2024-1-25 10:30 因为大部分文本编辑器,基本是要读到 BOM 签名才能正确识别为 UTF-16LE 编码,否则默认按 ANSI 或 UTF-8 处理。 所以按我前面回复的,你手动加上 BOM 签名就行了。 |
urenai 发表于 2024-1-25 11:59 我是Win11,也在Win7下试过,文本到多字节还是乱码。 |
| 读写txt文件都需要自己判断编码的,utf16 utf8 utf8bom ansi每种文件的头几个字节不同的需要自己判断 |
创世魂 发表于 2024-1-24 21:35 我的意思是,只要用重写、改写方式,由文件打开创建的文件必定是ANSI格式,需要开发者对文件进行处理才能用写入文本、写文本行之类的命令写出正常文本。 如果开发这不处理,直接写出文本就会是乱码。 重点问题是 用重写、改写方式,由“文件打开”创建的文件必定是ANSI格式。 |
|Archiver|手机版|小黑屋|递归火山软件开发平台
( 鄂ICP备18029190号 )
GMT+8, 2026-2-8 20:25 , Processed in 0.093458 second(s), 23 queries .
Powered by Discuz! X3.4
© 2001-2017 Comsenz Inc.