我有西里尔字的字符串。我需要收到一封信。 我只是这样找到了:
wstring line;
wifstream myfile (".../outfile.txt");
if (myfile.is_open())
{
while (myfile.good())
{
getline (myfile,line);
wstring a = line.substr(0,2); // this gives one first letter
//....
}
myfile.close();
}
有没有更好的方法来收取西里尔字母的来信?
答案 0 :(得分:0)
如果西里尔文使用UTF-16编码的代理对,而不是这样做:
wstring a = line.substr(0,2);
你可能想考虑做类似的事情:
const wchar_t surrogate[] = { line[0], line[1], L'\0' };
const wchar_t non_surrogate[] = { line[0], L'\0' };
const wstring a = IS_SURROGATE_PAIR(surrogate[0], surrogate[1]) ?
surrogate :
non_surrogate;
IS_SURROGATE_PAIR宏适用于Windows - 如果您在其他地方,可以通过阅读宏链接及其随附的Surrogates and Supplementary Characters文档来自行检查。