■76508 / inTopicNo.4) |
Re[1]: 英語版OSでVBのStrConvを使用 |
□投稿者/ 魔界の仮面弁士 (409回)-(2015/07/16(Thu) 12:15:02)
|
■No76505 (ヒークン さん) に返信 > VB2008で作成したソフトが、英語版OS(Windows2007 US)で
Windows 2007 という OS はありませんよ。(Office 2007 ならありますが) 海賊版だったりはしないですよね…? (^_^;)
> どうやら、半角⇔全角変換に使用しているStrConvで例外が発生しているようで、 > この環境ではStrConvが使えない、という所までは理解しました。
環境が無いので試せませんが、StrConv の第3引数を指定しても駄目でしょうか? 日本語のロケールID は 1041 です。 https://msdn.microsoft.com/ja-jp/library/Cc392381.aspx
手元に英語環境が無いので、韓国語で実験。
'全角ハングル/半角ハングルでの、韓国語「頭(モリ)」 Dim wideHangul As String = ChrW(&HBA38) & ChrW(&HB9AC) Dim halfHangul As String = ChrW(&HFFB1) & ChrW(&HFFC6) & ChrW(&HFFA9) & ChrW(&HFFDC)
'これだと、日本語環境では文字化けする Dim halfWidth0 As String = StrConv(wideHangul, VbStrConv.Narrow) Dim fullWidth0 As String = StrConv(halfHangul, VbStrConv.Wide)
'これなら OK Dim lcid_Korea As Integer = 1042 Dim halfWidth1 As String = StrConv(wideHangul, VbStrConv.Narrow, lcid_Korea) Dim fullWidth1 As String = StrConv(halfHangul, VbStrConv.Wide, lcid_Korea)
> StrConvを含めた箇所をすべて修正するには時間がかかると思いますので、 > それ以外にこの問題を回避する方法はありますでしょうか?
たとえば上記の韓国語の半角変換の場合、事前に My.Application.ChangeCulture("ko-KR") として韓国のカルチャに変更しておけば、第三引数無しでも変換が成功します。 同様に、その英語環境で、"ja-JP" カルチャを指定した場合、結果に変化は無いでしょうか。
場合によっては、OS 側に MUI 言語パックを導入する必要があるかもしれません。 (MUI を導入可能な OS のエディションは限られていますが…)
|
|