将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文件重写为其他编码[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 C++ 在 .txt 文件中写入、读取和重写

没有文件头的txt文件,如何判断是啥编码格式

记事本修改txt文件编码为UTF-8

记事本修改txt文件编码为UTF-8

通过将数组值转换为表来创建 .txt 文件 [关闭]

如何检查TXT文本是否ANSI编码格式的?