wxWidgets和UTF8 - 缺少某些字符

时间:2015-06-09 13:48:14

标签: utf-8 wxwidgets

所以我用UTF8编码了这个文件。我加载它并打印如下:

char buffer[2048] = {0};

FILE *pFile = fopen("D:/localization.csv","rb");
int iret = fread(buffer,1,2048,pFile);
fclose(pFile);

wxString strMessageText = wxString::FromUTF8(buffer);
wxMessageBox(strMessageText);

问题是,当文本包含一些"无效"字符,它不会被创建(strMessageText的长度为0)。例如,我注意到丹麦语或德语字符很好但是当我在文本文件中放入波兰语或俄语字符时,wxString :: FromUTF8函数无法创建正确的文本。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

如果文件包含正确编码的UTF-8文本,wxString::FromUTF8()将对其进行解码。如果没有,您仍然可以使用wxMBConvUTF8 MAP_INVALID_UTF8_TO_OCTAL在输入中保留错误编码的字节,但这通常不是一个好主意。

答案 1 :(得分:0)

我在这里找到了解决方案https://forums.wxwidgets.org/viewtopic.php?f=1&t=41068 原来我的wxWidgets lib已经过时了。我有2.8.12版本,并更新到3.0.2,没关系。