目前我正在尝试打开一个以Unicode格式保存的文本文件,将其内容复制到wstring中,然后在控制台上显示它。因为我想更多地了解如何处理字符串和打开文件,所以我正在一个简单的程序中进行实验。以下是源代码。
当我尝试在控制台上显示它时,它会显示■W H Y,而不是应该显示的WHY(实际上应该是“WHY WONT YOU WORK”,但我想我稍后再担心为什么它不完整)。 老实说,对我来说使用Unicode并不是非常重要,因为这不是我将出售的程序(更多只是为了自己)。不过,我确实想熟悉一下它,因为最终我确实计划需要在C++中使用Unicode的知识。我还在使用boost文件系统处理目录和多线程,同时使用C++/cli进行GUI开发。我的问题是:如果我现在不需要Unicode,我真的需要费心使用它吗?如果需要,我该如何解决这个问题,并且是否有跨平台库来处理使用不同Unicode编码的字符串和文件(Windows使用UTF-16,Linux使用UTF-32)。
此外,任何关于C++中Unicode或Unicode的文章都将受到赞赏。这是我找到的一篇文章,它有所帮助。The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) 谢谢。
编辑:我刚刚找到了另一篇有用的文章使用C++读取UTF-8字符串。
int main()
{
std::wfstream myfile("C:\\Users\\Jacob\\Documents\\openfiletest.txt");
if(!myfile.is_open())
{
std::cout << "error" << std::endl;
}
else
{
std::cout << "opened" << std::endl;
}
std::wstring mystring;
myfile >> mystring;
std::wcout << mystring << std::endl;
system("PAUSE");
}
当我尝试在控制台上显示它时,它会显示■W H Y,而不是应该显示的WHY(实际上应该是“WHY WONT YOU WORK”,但我想我稍后再担心为什么它不完整)。 老实说,对我来说使用Unicode并不是非常重要,因为这不是我将出售的程序(更多只是为了自己)。不过,我确实想熟悉一下它,因为最终我确实计划需要在C++中使用Unicode的知识。我还在使用boost文件系统处理目录和多线程,同时使用C++/cli进行GUI开发。我的问题是:如果我现在不需要Unicode,我真的需要费心使用它吗?如果需要,我该如何解决这个问题,并且是否有跨平台库来处理使用不同Unicode编码的字符串和文件(Windows使用UTF-16,Linux使用UTF-32)。
此外,任何关于C++中Unicode或Unicode的文章都将受到赞赏。这是我找到的一篇文章,它有所帮助。The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) 谢谢。
编辑:我刚刚找到了另一篇有用的文章使用C++读取UTF-8字符串。