如何实现文本文件的另存为UTF8?

时间:2023-01-10 11:22:56
  如对文本文件保存时候,可以选择编码UTF8保存。如何实现这个功能呢?


  选择我做法是:读取文件中内容,然后将这个字符转换为UTF8字符串,然后在加上0xEF,0xBB,0xBF三个字节加上转换后的UTF8字符串写入文件,发现得到的文件并不是我想要的结果。

  谢了 

4 个解决方案

#1


BOM没有问题,检查编码转换是否正确

#2


可以使用hex编辑器参考用记事本保存的utf-8文本文件

#3


引用 2 楼 ok1234567 的回复:
可以使用hex编辑器参考用记事本保存的


我也很想知道记事本的另存为utf-8文本是怎么搞的,刚刚试了下,是0xEF,0xBB,0xBF加上UTF8编码的字符串

#4


如果程序是ANSI的,需要MultiByteToWideChar(CP_UTF8,....)转换一下。
如果程序是Unicode,需要WideCharToMultiByte(CP_UTF8,...)转换一下。
BOM可以加,也可以不加,多数文本编辑器都可以猜测出来UTF8和UTF16的编码。

楼主要是真的想研究的话,可以看看linux上面开源的相关编辑器源代码。

#1


BOM没有问题,检查编码转换是否正确

#2


可以使用hex编辑器参考用记事本保存的utf-8文本文件

#3


引用 2 楼 ok1234567 的回复:
可以使用hex编辑器参考用记事本保存的


我也很想知道记事本的另存为utf-8文本是怎么搞的,刚刚试了下,是0xEF,0xBB,0xBF加上UTF8编码的字符串

#4


如果程序是ANSI的,需要MultiByteToWideChar(CP_UTF8,....)转换一下。
如果程序是Unicode,需要WideCharToMultiByte(CP_UTF8,...)转换一下。
BOM可以加,也可以不加,多数文本编辑器都可以猜测出来UTF8和UTF16的编码。

楼主要是真的想研究的话,可以看看linux上面开源的相关编辑器源代码。