Scintilla真的支持Unicode吗?如果是这样,为什么SCI_GETCHARAT
返回一个char
值(强制转换为LRESULT
)?
发布于 2011-06-08 22:14:38
代码页SC_CP_UTF8 (65001)将Scintilla设置为Unicode模式,并将文档视为以UTF8表示的字符序列。文本在被操作系统绘制之前被转换为平台的标准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
发布于 2011-05-30 01:09:48
我很久以前就是了,但如果我没记错的话,Scintilla不是一个原生Unicode应用程序。它仍然有一些的 Unicode支持。
首先,函数名应该是SCI_GETBYTEAT
,因为它从UTF-8内部缓冲区返回一个字节。
此外,该应用程序还支持对keybaord的Unicode,因此它具有一些Unicode支持:)
https://stackoverflow.com/questions/6169088
复制相似问题