2011年9月5日月曜日

[ASP.NET]StrConvでひらがな・半角カナ変換でエラーが出る 時の対処法

StrConvでひらがな・半角カナ変換をしようとしたところ、 開発環境では動いたのに、サーバーにのせたら下記のエラーが出てしまいました。

System.ArgumentException: This system does not contain support for the Japanese locale.

原因は読んでそのまま、OSが日本語をサポートしていないからです。
まずは.NET Frameworkの日本語language packがインストールされているか確認しましょう。
インストールされていなかったらインストールしてください。
language packがインストールされているのにひらがな・ 半角 カナ変換できないぞゴルァ! という時は、OSの言語が日本語になっていない可能性があります。
そんな時はOSの言語を日本語に設定するか、あるいはStrConvの第三引数に日本語LocaleID(1041)を指定します。

Dim strExample As String = "ほげほげ"
Dim strResult As string = ""
strResult = Strings.StrConv(strExample, VbStrConv.Katakana + VbStrConv.Narrow, 1041)
'--------------------------------
'結果;
'strResult = "ホゲホゲ"

後々のメンテナンスとかサーバが変わった時のことを考えると、LocaleIDを指定しておいた方がいいような気がします。