6

Scintilla 真的支持 Unicode 吗?如果是这样,为什么会SCI_GETCHARAT返回一个char值(强制转换为LRESULT)?

4

2 回答 2

4

SCI_SETCODEPAGE 文档...

代码页 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 回答