有什么办法可以做得很好。当我尝试使用 Boost'sto_upper()
时,我得到一个std::bad_cast
,所以我以这样的方式结束:
while(str[i]!=u'\0')
{
str[i]=(char16_t)to_upper((wchar_t)str[i]);
i++;
}
我什至不确定这是否正确,因为我不知道是否可以保证to_upper
ofchar16_t
与原始字符具有相同的大小。而且我不确定这是否会导致下一个字符被覆盖或再次读取最后一个进动的后半部分。很抱歉我的愚蠢问题,但是当涉及到具有可变长度编码的随机访问和 char 类型时,我遇到了问题。