忍者ブログ

VB.NET-TIPS などプログラミングについて

VB.NETのTIPS(小技集)を中心に、Javascript、PHP その他のプログラミングについて少し役に立つ情報を発信します。いわゆる個人的な忘備録ですが、みなさんのお役に立てれば幸いです。

文字列変換関数(StrConv)で変換が途中で切れる

文字列変換関数の StrConv を使っていて、変換結果が途中で切れてしまう現象が発生してしまいました。 普通に考えて以下の様な処理を行ったのですが、思った通りの結果が得られずに途中までしか変換されません。

文字列変換関数(StrConv)で変換が途中で切れるソース

    Dim strOrg As String = "abcあいうえお"
    Dim str As String = StrConv(strOrg, VbStrConv.Wide)
    Debug.WriteLine("全角文字変換:" & str)

上記のソースの部分のみを実行させた場合に、デバッグ出力ウインドウに以下の様に表示されました。

全角文字変換:abcあ

予想変換結果は「abcあいうえお」のはずなのですが、上手く変換されません。 変換種類の第2引数を変えてもうまくいかない場合があります。

そこでネットで調べたのですが Visual Studio が互換モードで実行されていると、 この現象が発生することがわかりました。 早速、自分のPCの Visual Studio の実行ショートカットのプロパティを開いてみました。

上図の様に互換性にチェックが入っていたので、互換性のチェックを外して以下の様にしました。

Visual Studio 再度起動しなおして、上記のソースを実行すると、当然のことながら以下の結果が表示されました。

全角文字変換:abcあいうえお


Visual Studio のインストールの時点で互換性をONしていたのかもしれません。今となってはよくわかりませんが。 StrConv の変換がなぜか上手くいかない場合は互換性をチェックしてみて下さい。

関連する記事

文字列定数(改行、タブ、バックスペース等)について
文字列変換関数(StrConv)の使い方











PR

コメント

コメントを書く