Scintilla 真的支持 Unicode 吗?如果是这样,为什么会SCI_GETCHARAT
返回一个char
值(强制转换为LRESULT
)?
问问题
1568 次
2 回答
4
代码页 SC_CP_UTF8 (65001) 将 Scintilla 设置为 Unicode 模式,文档被视为以 UTF-8 表示的字符序列。文本在被操作系统绘制之前被转换为平台的正常 Unicode 编码,因此可以显示希伯来文、阿拉伯文、西里尔文和汉文字符。
您将不得不检查您使用 SCI_GETCHARAT(pos) 检索的字节,并且根据其最高位,可能读取 SCI_GETCHARAT(pos+1) 及更高版本以获得 Unicode 代码点。(见这里。)
编辑:
对于一些执行此操作的 C++ 代码,请参见下文(搜索SciMoz::GetWCharAt
):
http://vacuproj.googlecode.com/svn/trunk/npscimoz/npscimoz/oldsrc/trunk.nsSciMoz.cxx
于 2011-06-08T14:14:37.593 回答
2
很久以前,但如果我记得很好的话,Scintilla 并不是一个原生的 Unicode 应用程序。它仍然有一些Unicode 支持。
首先,函数名应该SCI_GETBYTEAT
是,因为它从 UTF-8 内部缓冲区返回一个字节。
此外,该应用程序具有对键盘键盘的 Unicode 支持,因此它具有一些 Unicode 支持 :)
于 2011-05-29T17:09:48.283 回答