将txt文件重写为其他编码[关闭]
Posted
技术标签:
【中文标题】将txt文件重写为其他编码[关闭]【英文标题】:Rewrite txt file into other encoding [closed] 【发布时间】:2014-01-04 18:04:22 【问题描述】:我有问题。我想将 txt 文件重写为其他 txt 文件,但使用其他编码。我必须实现到 Unicode、iso-8859 和 windows-1250 的转换。
我必须用 C++ 编写它。 谁能帮我解决这个话题?如何开始编码?
最好的问候!
【问题讨论】:
首先,您需要查找这些编码并为它们设置转换表。然后,打开文件,逐字节读取,通过查表转换每个字节,并将其写入输出文件。 记事本中创建的文件是什么编码? 【参考方案1】:Windows 完全有能力为您进行字符串转换。从源文件读取数据并将其传递给指定源代码页的MultiByteToWideChar
,然后将该输出传递给指定目标代码页的WideCharToMultiByte
,并将该输出写入目标文件。
顺便说一句,下一个问题预先说明您仅在 Windows 上工作。请勿在评论中添加此类有用信息。
【讨论】:
嗨!对不起(跳过有关操作系统的信息)。我写了这个 pastebin.com/p5cCtZfx 。当我打开输出文件时,notepad++ 将 ANSI 显示为 UTF-8(右下角),但是当我用波兰字母转换字符串时,它只在波兰字母位置显示一个正方形。第二,它只转换为 utf-8?我在文档中没有看到有关 iso-8859 和 windows-1250 的任何信息。 @user3025978:抱歉,我不知道这意味着什么。 “将 ANSI 显示为 UTF-8”? UTF-8 是 Unicode 的 8 位编码,ANSI 是美国国家标准协会(没有创建 UTF-8)。 ISO-8859 是一个包含 15 个字符集的标准。其中大多数不包含波兰字符,顺便说一句。【参考方案2】:我首先要深入了解这种编码格式,然后创建一些编码转换表,然后逐字节进行转换。此外,听起来您将要处理不同的操作系统,因此请注意字节顺序。
这是一个很好的链接,可以帮助您入门Encoding for Programmers。
EDT#1:这是另一个在subject of character encoding in windows 上更深入的链接。在这里您可以找到可以帮助您构建应用程序的函数和宏。
【讨论】:
您好,感谢您的回复。我只会将其写入 WindowsOS。我在哪里可以找到这个转换表?或者我该如何准备这张桌子?以上是关于将txt文件重写为其他编码[关闭]的主要内容,如果未能解决你的问题,请参考以下文章