Scintilla真的支持Unicode吗?如果是,为什么SCI_GETCHARAT
会返回char
值(已投放到LRESULT
)?
答案 0 :(得分:4)
来自SCI_SETCODEPAGE docs ...
代码页SC_CP_UTF8(65001)将Scintilla设置为Unicode模式,文档被视为以UTF-8表示的字符序列。在被操作系统绘制之前,文本将转换为平台的普通Unicode编码,因此可以显示希伯来语,阿拉伯语,西里尔语和汉字。
您必须检查使用SCI_GETCHARAT(pos)检索的字节,并根据其顶部位读取SCI_GETCHARAT(pos + 1)以及更高版本以获取Unicode代码点。 (见here。)
修改强>
对于执行此操作的某些C ++代码,请参阅下文(搜索SciMoz::GetWCharAt
):
http://vacuproj.googlecode.com/svn/trunk/npscimoz/npscimoz/oldsrc/trunk.nsSciMoz.cxx
答案 1 :(得分:2)
我很久以前但是如果我记得很清楚Scintilla不是原生的Unicode应用程序。它还有一些 Unicode支持。
首先,函数名称应为SCI_GETBYTEAT
,因为它从UTF-8内部缓冲区返回一个字节。
此外,该应用程序具有对keybaord的Unicode支持,因此它具有一些Unicode支持:)