C# の Noto Sans フォントで韓国語をサポートするチュートリアルの例

零下一度
リリース: 2017-06-23 14:53:04
オリジナル
2482 人が閲覧しました

1. 出典:

VCU10 プロジェクト。Noto Sans フォントを使用しています。これは本当に美しいです。ただ、win7で検証すると表示される韓国語が文字化けしてしまい、かなり頭が痛いです。

インターフェースは図のように表示されます:

Dude、Noto Sans、CJK フォントが利用可能で、名前が示すように、中国語、日本語、韓国語をサポートしており、サイズが大きいため、サポートされていません。解決策として適切です。

2. Font.GdiCharSet 属性

現状では解決策はありませんか?プログラムは複数の言語をサポートする必要があります。

まずはフォント自体のプロパティを確認してみましょう。検証の結果、韓国語は文字セット GdiCharSet を変更することで正常に表示できることがわかりました。

情報を調べると、フォント GdiCharSet は次の値を持つことができます:

Character set

value

ANSI

0

デフォルト

1

シンボル

2

SHIFTJIS適用

128

韓国語

129

韓国語

129

GB2312

134

CHINESEBIG5は

136

OEM

255

に適しています

韓国語

130

こんにちはアラビア語

177

アラビア語

178

ギリシャ語

161

トルコ語

162

ベトナム語

163

タイ語

222

東ヨーロッパ

238

ロシア

204

MAC

77

Baltic

186

は、東ヨーロッパやバルト海などの文字セットがデフォルトの文字セットの表示効果に影響を与えることなく韓国語を正常に表示できることを確認したため、その文字セットを置き換えることを決定しました。

3. 置き換える

プロジェクトのインターフェースにはフォントが設定されており、それらをバッチで処理するコードを 1 つずつ記述するのはもちろん不便です。

各フォームまたは各UserControlでUpdateNotoSansCharset()を呼び出すと一律に置き換えられます。

        //处理Label字体,以能在win7下,NotoSans字体能显示韩文public static void UpdateNotoSansCharset(Form form)
        {if (OSUtils.OSVersion > FriendlyOSVersion.Win7)return;foreach (Control ctrl in form.Controls)
                UpdateNotoSansCharset(ctrl);
        }public static void UpdateNotoSansCharset(ScrollableControl parent)
        {if (OSUtils.OSVersion > FriendlyOSVersion.Win7)return;foreach (Control ctrl in parent.Controls)
                UpdateNotoSansCharset(ctrl);
        }public static void UpdateNotoSansCharset(GControl ctrl)
        {if (ctrl is ScrollableControl)
                UpdateNotoSansCharset(ctrl as ScrollableControl);else if (ctrl is Label)
            {//CharSet采用中欧字符集var font = new Font(ctrl.Font.FontFamily, ctrl.Font.Size, ctrl.Font.Style, ctrl.Font.Unit, 238);
                ctrl.Font = font;
            }
        }
ログイン後にコピー

4. 効果

OK、問題は解決しました、完璧です:

以上がC# の Noto Sans フォントで韓国語をサポートするチュートリアルの例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート