csv文件中包含日文文本。 在通过记事本打开时,它表示其编码为utf-8。
我在stackoverflow上读到,对于utf-8,首先在单个流中读取文件,然后将其转换为wstring。
我使用下面的代码将字符串转换为wstring。
wstring stow(const std::string& str){
int size_needed = MultiByteToWideChar(CP_UTF8, 0, &str[0], (int)str.size(), NULL, 0);
std::wstring wstrTo( size_needed, 0 );
MultiByteToWideChar(CP_UTF8, 0, &str[0], (int)str.size(), &wstrTo[0], size_needed);
return wstrTo;}
但是,在日文文本的情况下,我在返回的wstring中得到了垃圾。
注意:
我如何成功阅读日文文本?
答案 0 :(得分:0)
缺少检查是否在字符串中添加了UTF-8 BOM,如果是,请跳过它。
答案 1 :(得分:0)
这是通过使用CP_ACP编码实现的。