6

Scintillaは本当にUnicodeをサポートしていますか?もしそうなら、なぜ(にキャストされた)値をSCI_GETCHARAT返すのですか?charLRESULT

4

2 に答える 2

4

SCI_SETCODEPAGEドキュメントから..。

コードページSC_CP_UTF8(65001)は、ScintillaをUnicodeモードに設定し、ドキュメントはUTF-8で表現された文字のシーケンスとして扱われます。テキストは、OSによって描画される前に、プラットフォームの通常のUnicodeエンコーディングに変換されるため、ヘブライ語、アラビア語、キリル文字、および漢字を表示できます。

取得したバイトをSCI_GETCHARAT(pos)で調べる必要があり、その上位ビットによっては、Unicodeコードポイントを取得するためにSCI_GETCHARAT(pos + 1)以降を読み取る場合があります。(ここを参照してください。)

編集:

これを行う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内部バッファーからバイトを返すためです。

また、アプリケーションはkeybaordをUnicodeでサポートしているため、Unicodeをサポートしています:)

于 2011-05-29T17:09:48.283 に答える