DOBON.NETプログラミング道掲示板

No34079 の記事


■34079 / )  文字列を8bit に戻してから UTF-8 に変換する方法
□投稿者/ sato 一般人(1回)-(2019/01/04(Fri) 13:29:42)
  • アイコン環境/言語:[windows10 MicrosoftVisualStudio Community2017] 
    分類:[.NET] 

    例えば "漢字" という文字列の場合、UTF-8 では e6 bc a2 e5 ad 97 といったデータになりますが、「あるDLL」を用いて"漢字" という文字列を取得すると、00e6 00bc 00a2 00e5 00ad 0097 と 16bit 化してstring変数に格納しています。

    あるDLLの使い方としては、例えば、
    Dim str1 As String=「あるDLL("漢字")」
    としたとき、変数str1の内容が、00e6 00bc 00a2 00e5 00ad 0097 となります。

    「あるDLL」のヘルプによりますと、「 8bit に戻してから UTF-8 として扱います。ユーザーが独自にデコードする場合、バイト文字列に戻してから文字コードを UTF-8 として扱ってください。」とありました。

    そこで、以下のようなコードで試しましたが、変数str2の内容が文字化けになります。

    「バイト文字列に戻してから文字コードを UTF-8 」にする方法、ご教示いただけますでしょうか?
    よろしくお願いします。


    Dim str1 As String=「あるDLL("漢字")」

    Dim bytesData As Byte() = System.Text.Encoding.UTF8.GetBytes(str1)
    Dim str2 As String = System.Text.Encoding.UTF8.GetString(bytesData)


違反を報告
返信 削除キー/


Mode/  Pass/


- Child Tree -