使用'\ uhhhh'
时,我需要了解UNICODE_STRING_SIMPLE宏的行为我有以下代码:
cout<<"Char print out for À"<<endl;
SCAUString us = UNICODE_STRING_SIMPLE ("À");
cout<<"us.countChar32()="<<us.countChar32()<<endl;
for (int i=0; i<us.countChar32(); i++)
cout<<(int)us.charAt(i)<<" ";
输出: us.countChar32()= 2 195 8364
但以下给出了不同的答案:\ u00C0是À
cout<<"\nChar print out for \\u00C0"<<endl;
us = UNICODE_STRING_SIMPLE ("\u00C0");
cout<<"us.countChar32()="<<us.countChar32()<<endl;
for (int i=0; i<us.countChar32(); i++)
cout<<(int)us.charAt(i)<<" ";
这里的输出是: us.length()= 1 192
任何人都可以解释为什么会有差异吗?
我使用ustream.h写了一个文件:
testFile<<"5:"<< UNICODE_STRING_SIMPLE ("À"); // needs ustream.h
testFile<<endl;
testFile<<"6:"<< UNICODE_STRING_SIMPLE ("\u00C0"); // needs ustream.h
testFile<<endl;
testFile是一个流程。 当我打开时,我看到5:À 但是6错了:6: 我在Visual Studio中打开了文本文件,这是VS向我展示的实际角色。
答案 0 :(得分:0)
什么是SCAUString
?
\u
(单反斜杠)由编译器解释。也许编译器不认为目标代码页与ICU期望的相同?
试试这个:
printf("%x or %x?\n", (int)'À', (int)'\u00C0');