wxWidgets,C ++,VS2010
我有一个wxString,其中包含来自非静态网页的显示文本(使用wxWebView& GetSelectedText())
我需要逐字符处理这个字符串,以便根据周围的字符从某些位置提取某些信息。
wxString是Unicode(有时是UTF8),所以这在循环获取每个字符的循环中效果不佳。
那么,如何将wxString转换为ASCII字符数组,每个字符1个字节? (也知道这个数组的长度)
我知道这将是一个“有损”的过程,我很高兴,因为我只是在寻找ASCII文本。
答案 0 :(得分:0)
它在循环中运行得非常好,wxString::operator[]
在给定索引处返回字符(好吧,忽略Windows下的代理复杂性),而不是字节,即使字符串在内部表示为UTF-8 。当然,这也意味着它无法有效实现,因此迭代字符串的首选方法是:
for ( wxString::const_iterator it = s.begin(); it != s.end(); ++it ) {
wchar_t wch = *it;
... do whatever you need with wch ...
}