none
編集文字列から&HC2A0を除去したい RRS feed

  • 質問

  • お世話になります。

    Outlookからメールを読み込み、編集後DBに保存する、VBプログラムのメンテナンスを行っております

     ※VB:Visual Studio 2005、DB:SQL Server2014

    メール本文に混入したNBSP(&HC2A0)がDBに保存した際に'?'に化けてしまう不具合の改修中なのですが、

    NBSP(&HC2A0)を除去できなくて苦しんでいます。

    以下、ソースの抜粋です。

                                    :
            ByVal myItem As Outlook.MailItem                               :
                                    :
            Dim strBodyFull As String = String.Empty
            Dim intC2A0 As Int32 = &HC2A0
            Dim strC2A0 As String = Strings.ChrW(intC2A0)
                                    :
                strBodyFull = myItem.Body
                                    :
                strBodyFull = strBodyFull.Replace(strC2A0, String.Empty)       ' C2A0         ← この行を実行しても除去されません。
                                    :

    ちなみにstrC2A0の値をイミディエイトWindowで確認すると、見たこともない漢字が入っていました。

    たぶん&HC2A0の扱い自体が間違っているのかと考えています。UTF-8へのencodeを絡める必要があるのかも…。

    詳しい方、いらっしゃいましたら、よろしくお願いします。

    2017年5月10日 13:03

回答

  • NBSPのUCS-2文字コードはU+00A0、つまりVBで書くと&H00A0です。

    本番プログラムに実装する前に、まずは単純なコンソールプログラムなどでテストすることを心がけましょう。

    2017年5月10日 13:54

すべての返信

  • NBSPのUCS-2文字コードはU+00A0、つまりVBで書くと&H00A0です。

    本番プログラムに実装する前に、まずは単純なコンソールプログラムなどでテストすることを心がけましょう。

    2017年5月10日 13:54
  • sygh 様、

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

    &H00A0 に置き換えて実行しました結果、除去できました。

    NBSPについては「C2A0問題」という形で耳にしていた為、&HC2A0であると微塵も疑わずにいました。

    大変助かりました。

    ありがとうございました。

    2017年5月11日 8:59