29414


WPF+C#で作ったソフトウェアのTextBoxに特殊な文字を入力すると特定の条件下で文字化けが発生します。  
例えば、[U+06EE](http://www.fileformat.info/info/unicode/char/06ee/index.htm)を文字コード表からコピーし、TextBoxに貼り付けるとそのままの状態では正しく表示されます。  
しかし、貼り付けた文字の前にスペースなどを追加すると □ に化けてしまいます。  
TextBlockに表示させた場合も同様に文字化けします。  
これは.NET Frameworkのバグでしょうか？  
.NET Frameworkは4.5.2を使用しています。


CC BY-SA 3.0
2016-10-07T07:32:13.260
29413
2016-10-07T08:18:14.043
19054
question
c# wpf unicode
WPFで特殊文字が特定の条件下で文字化けする


現象としてはフォントが適切に選択されていない状態になっているようです。ですので`FontFamily`をアラビア語が表示可能なように日本語のみに範囲を限定して指定するか、

[code]

    <!-- ルート要素に xmlns:sys="clr-namespace:System;assembly=mscorlib" を記述 -->
    <TextBox>
        <TextBox.FontFamily>
            <FontFamily>
                <FontFamily.FamilyNames>
                    <sys:String x:Key="ja-JP">MS Mincho</sys:String>
                </FontFamily.FamilyNames>
            </FontFamily>
        </TextBox.FontFamily>
    </TextBox>
    
[/code]

もしくはアラビア語フォントを指定すると改善します。

[code]

    <TextBox FontFamily="Aldhabi" />
    
[/code]


CC BY-SA 3.0
2016-10-07T08:18:14.043
29414
2016-10-07T08:18:14.043
5750
29413
answer