全角文字入力フィールドに全角文字と半角文字が混在しているdatatableの項目(UTF-8)の値を設定するため、その項目の半角文字を全角文字に変換しようと思います。
その際、StrConv関数を用いて変換したのですが、もともと全角で入っていた文字が「?」に変換されてしまいました。
StrConv関数使用例:StrConv(国外住所1,VbStrConv.Wide,1041)
この文字は、unicode上のハングルの領域(AC01~)なのですが、使用しているフォントファイルでは日本語文字として表示されるようにしています。
○なぜ「?」となってしまうのか?
○「?」とならないためにはどのようにすればよいか
について、お教え願います。
Yoichi
(Yoichi)
2
こんにちは
ダミーでも良いのでサンプル文字列共有できますでしょうか?
1041は日本語ロケールを意味しているので、日本語以外は正しく扱えない可能性があると思います。
Yoichi
(Yoichi)
4
取り急ぎハングルを除けてstrconvしてみました。以下いかがでしょうか?
System.Text.RegularExpressions.Regex.Replace(yourString,"[^\u3131-\u318F\u1100-\u11FF\uA960-\uA97F\uD7B0-\uD7FF\uAC00-\uD7AF]+",Function(m) strConv(m.Value,VbStrConv.Wide,1041))
早急な回答、ありがとうございます!
試してみます。