Utf 8 wxWidgets和UTF8-缺少一些字符
我用UTF8编码了这个文件。我加载它并按如下方式打印:Utf 8 wxWidgets和UTF8-缺少一些字符,utf-8,wxwidgets,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); 问题是,当文本
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函数无法创建正确的文本。有什么想法吗?如果文件包含正确编码的UTF-8文本,wxString::FromUTF8将对其进行解码。如果没有,您仍然可以使用例如MAP_INVALID_UTF8_TO_octall来保留输入中甚至编码错误的字节,但这通常不是一个好主意。我在这里找到了解决方案 原来我的wxWidgets库已经过时了。我有版本2.8.12,更新到3.0.2,一切正常