void CAlignSentenceDoc::NormalizeCH(wstring& delim)
{
for(int i = 0; i < delim.size(); i++)
{
if(delim[i] == L‘。‘)
delim[i] = L‘.‘;
if(delim[i] == L‘,‘)
delim[i] = L‘,‘;
}
}
delim是wstring,因此里面的每个字符都是宽的,因此要用L宏做转化。
但是我试过代码写成如下
wchar_t t = ‘。‘;//这里t是0xa1a3,不是。的unicode编码
wchar_t t2 = L‘。‘;//这里t是0x3002,是unicode编码
也就是wchar_t 编译器并不会做一个强制转化,不加宏默认都是ascii。
时间: 2024-10-31 14:23:31