我意识到,在wxStyledTextCtrl如果用户的评论中包含非ASCII字符,通过WordStartPosition
和WordEndPosition
报道的立场是错误的。在wxStyledTextCtrl中处理非ASCII字符的好方法是什么?我如何识别非ASCII字符?wxStyledTextCtrl非ASCII字符
0
A
回答
0
你现在可能已经回答了这个问题,但在我做的实验中,WordStartPosition和WordEndPosition仍然可以使用非ASCII字符。控制器内部的数据以UTF-8格式存储,并且这些函数给出该数据中字的开始和结束处的字节数。如果这不是你正在发生的事情,你可以在他们不工作的地方发布样本吗?
至于确定哪些字符和非ASCII,像下面似乎工作(假设为起点,b是结束位置):
wxString s = m_stc->GetTextRange(a,b);
for (wxString::const_iterator i = s.begin(); i != s.end(); ++i)
{
wxUniChar uni_ch = *i;
if(uni_ch.IsAscii())
{
//something
}
else
{
//something else
}
}
有一件事我没有通知是如果您对a或b使用的值落在其中一个非ASCII字符的中间,则结果字符串将为空。如果你还没有找到解决方案,我希望这会有所帮助。
+0
你对“WordStartPosition”和“WordEndPosition”是否正确。但是,当文本中存在非ASCII时,'GetTextRange'不适用于我。 'GetTextRangeRaw'似乎是检查非ASCII的一种更好的方式,就好像将它流式传输到std :: cout一样,您可以看到非ASCII字符。 – macroland
相关问题
- 1. FWRITE非ASCII字符
- 2. Python非ASCII字符
- 3. 反转包含ASCII字符和非ASCII字符的字符串
- 4. 文字中的非ASCII,非Unicode字符
- 5. Bash:将非ASCII字符转换为ASCII
- 6. C中的非ASCII字符
- 7. fputcsv中的非ascii字符
- 8. PHP中的非ASCII字符?
- 9. preg_match_all:包含非ASCII字符
- 10. 非ASCII字符错误python
- 11. C#解码非ASCII字符?
- 12. GLSL错误:非法非ASCII字符
- 13. 停止熊猫写入非源字符的非ASCII字符
- 14. 删除文件中的非ASCII字符
- 15. 将非ASCII字符编码为UTF-16
- 16. Ruby/LDAP非ASCII字符支持
- 17. php glob函数和非ASCII字符
- 18. 在C#.NET中编码非ascii字符
- 19. 非ASCII字符作为参数
- 20. 非ASCII字符停止mysql语句
- 21. 在shell中获得非ASCII字符Linux
- 22. Python 2/3 subprocess.Popen和非ASCII字符
- 23. 将非ASCII字符输入到scanf(“%s”)
- 24. 试图只删除非ASCII字符
- 25. 删除非ASCII字符(使用Microsoft.Office.Interop.Excel)
- 26. Flask语法错误:非ASCII字符'\ xe2'
- 27. 在URL中显示非ASCII字符
- 28. 检查matlab中的非ascii字符
- 29. 问题与committting与非ASCII字符
- 30. 从XML中读取非ASCII字符
我应该回答我的问题:虽然它可能不是最好的方法,但一种方法是检查RawText的长度是wxCharBuffer,文本是wxString。 wxCharBuffer包含附加字符以容纳非ASCII字符。 – macroland