半角全角を含む文字列の比較について

漢字、ひらがな、全角カタカナ、全角数値、半角数値、全角記号、半角記号の文字列が含まれる値を比較したいのですが、全角半角関係なく比較するにはどのような方法がありますでしょうか?

すべて半角に変換してから比較しようとすると下記のエラーが出力されます。
No data is available for encoding 932. For information on defining a custom encoding, see the documentaion for the Encoding. RegisterProvider method.

比較の式は下記です。
StrConv(TransactionItem(“列名”).ToString,VbStrConv.Narrow,1041)=StrConv(変数名,VbStrConv.Narrow,1041)

よろしくお願いいたします。

こんにちは

Windowsプロジェクトでstrconvを使用するときは以下を事前にコールする必要があります。

System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance)

詳しくは以下参照ください。

ご回答ありがとうございます!明日試してみます。

もう一点質問させてください。
半角数字を全角数字に置換したい場合はどのような方法がありますでしょうか?

strData.Replace(“[0-9]”, “[0-9]”)
上記の書き方では置換されませんでした。
数値の指定方法が間違っているのでしょうか?なるべく一つ一つ変換は避けたく、、

よろしくお願いいたします。

通常のString.Replaceには範囲での指定等はできません。
例えば正規表現置換などを使って以下の様にします。

System.Text.RegularExpressions.Regex.Replace(strData,"[0-9]",Function(m) StrConv(m.Value,VbStrConv.Wide,&H411))

ご回答ありがとうございます。

こちらを使用すると「[変数名]に割り当てられません。」とエラーになりました。。

正確なエラーメッセージを共有できますでしょうか?

失礼しました。こちらもstrConvを使用しているのでコールが必要なのですね。。
完全に見落としていました。。ありがとうございます :smiling_face_with_tear:

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.