0

私は自分のアプリケーションをローカライズしていて、それを通してユーザーに特定のことを警告するメッセージボックスがあります。テキスト領域に漢字を含めると、VS2010でデバッグするときは四角の束のように見えますが、プロパティにバインドされたオブジェクトを介してUIに表示されると、適切な文字に変換されます。しかし、コードが直接messagebox.show( "漢字")を呼び出すと、空の正方形の束が表示されるだけになります。どうしてこれなの?

4

1 に答える 1

2

Silverlight には「ダブル バイト」などというものはありません。すべての文字列は utf-16 でエンコードされます。ダブルバイトは、CJK テキストをエンコードする方法を見つけるための 8 ビット コード ページの時代からのハックです。Encoding クラスを使用して、そのようなエンコードされたテキストを utf-16 に変換する必要があります。

テキストが四角で表示されるのは、文字が不適切なエンコーディングによる制御コードであることが原因である可能性があります。または、マシンにインストールされているフォントのグリフがサポートされていません。これも急速に消えつつある問題です。通常は、東アジア フォント サポートがインストールされていない XP でのみ発生します。

于 2012-05-25T20:09:58.407 に答える