2017-06-11 2 views
-3

文字列の文字の順序が即時のウィンドウのバリアントである理由は誰でも言えますか?あなたはそれでRTLテキストに文字列を示す話をしている画像をもとに https://i.stack.imgur.com/sDv0y.jpgVS IDEデバッグモードの文字列要素の順序がC#のメモリの順序と異なるのはなぜですか?

enter image description here

+1

アラビア語、ヘブライ語またはペルシャ語のグリフを使用してRTLを表示するように設定されていないウィンドウにテキストを表示することは予測できません。最終的にここには2つの非常に異なるテキストレンダリングエンジンがあり、エディタのテキストはWPFコードで表示され、イミディエイトウィンドウはネイティブコードのラッパーです。従来のテキストレンダリングエンジンは、U + 200Fからのキューを必要とせずにスタブを取得し、テキストに西洋のグリフや句読点も含まれているとうまくいきません。 –

+0

@HansPassant:wpfコードで表示されるものを得る方法はありますか? –

答えて

0

。そのようなテキストの正しい視覚表現(特に "?"のようなLTR文字が混在している)は、メモリの順序とは異なります。

文字が格納される順序で文字を表示することがわかっている唯一の信頼できる方法は、charまたはint配列に変換してその配列を表示または印刷することです。他のすべての方法は、RTLルールの少なくとも一部に続いて文字列をレンダリングしようとする可能性があります。

関連する問題