2

私が EVC++ 4 で開発しているアプリケーションは Windows CE 5 で動作し、ユニコードをサポートする必要があります (AFAIK wchar_t は Windows で UTF-16 を使用するため、それを使用しています)。文字。特に、2 バイトだけでなく UTF-16 で 4 バイトを使用する文字の場合。したがって、そのような文字をテキストエディター (組み込みデバイスではなく、Windows XP を搭載したデスクトップ PC の atm) で表示しようとしています。

しかし、私はまだそうすることができていません。例として、このキャラクターを選択しました。ここで述べたように、 「MPH 2B ダマーゼ」はこのキャラクターをサポートする必要があります。そこで、フォントをダウンロードして Windows\Fonts に入れました。次の内容のhexeditorを使用して(念のため)テキストファイルを作成しました。

FFFE D802 DC00

メモ帳 (Unicode 対応である必要がありますよね?) で開いて、ダウンロードしたフォントを使用すると、意図したとおりに 1 文字が表示されませんが、この 2:

˘Ü

私は何を間違っていますか?:)

ありがとう!

フルニエル

編集: 提案されているように、BOM を反転しても機能しません。この場合、メモ帳 (および私が試した他のすべてのエディター) には 2 つの四角形が表示されます。興味深いのは、ここで 2 つの正方形を (firefox で) コピーすると、正しい文字が表示されることです。


Komodo Edit でも試してみましたが、同じ結果でした。

UTF-8 を使用しても、メモ帳には役立ちません。

4

3 に答える 3

1

ドキュメントを読むのを忘れている可能性があり_wfopen()ます。そこで、エンコーディング パラメータを指定します。ところで、あなたはすでに Unicode (wchars) を使用していると思います。

BOM の有無にかかわらずファイルで UTF-8 を使用することをお勧めしますが、fopen では UTF-8 フラグを使用するように強制します。BOM_wfopen("newfile.txt", "r, ccs=UTF-8");の有無にかかわらずUTF-8で動作し、UTF-16でも動作するようです。の使用を間違えないでください。BOMのないccs=UnicodeUTF-8 ファイルを使用することはよくあることです。

作業を開始する前に、Unicode について少し読む必要があります。これは非常に良い投資です。Unicode がどのように機能するかを理解していれば、時間を節約できます。

ここから始めましょうhttp://blog.i18n.ro/newbie-guide-to-unicode/記事の最後にあるリンクを読むことを忘れないでください。

Unicode エンコーディングを操作できるシンプルなテキスト エディターが本当に必要な場合は、Notepad++を使用し、Notepad のことは忘れてください。

于 2010-08-12T10:02:42.733 に答える
1

バイト オーダー マークを逆にするとどうなるでしょうか。

フェフD802 DC00

(現時点では、バイト シーケンスは U+02D8 U+00DC の 2 文字として解釈されているため、BOM を反転すると、バイトが意図した順序で読み取られることを願っています)

于 2009-04-23T15:37:50.970 に答える
1

あなたのテキスト エディタは UTF-16 を好まないかもしれません。おそらくANSIまたはUTF-8を想定しています。

代わりに、UTF-8 に相当するものを入力してみてください。

0xF0 0x90 0xA0 0x80

これはテストには役立ちませんが、フォントに問題がないことを確認できます。UTF-16 をサポートするテキスト エディターはKomodo Editです。

于 2009-04-23T15:27:19.937 に答える