SJIS<->UTF8の文字コード変換
- 題名: SJIS<->UTF8の文字コード変換
- 著者: godo-tys
- 日時: 2012/11/14 23:38:24
- ID: 31110
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: SJIS<->UTF8の文字コード変換
- 著者: shu
- 日時: 2012/11/15 0:35:32
- ID: 31111
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: SJIS<->UTF8の文字コード変換
- 著者: godo-tys
- 日時: 2012/11/15 1:03:05
- ID: 31112
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
初めて投稿します。godo-tysと申します。
先に、本投稿はマルチポストであることをお断りします。
ポスト先:http://oshiete.goo.ne.jp/qa/7797421.html
やりたいことは、
SJISの文字列をUTF8文字列に変換して、TextBox1に表示する。
TextBox1をUTF文字列をSJIS文字列に戻す。
作成したコード
Dim beforeStr As String = "変換前"
Dim utfEnc = System.Text.Encoding.GetEncoding(65001)
Dim sjisEnc = System.Text.Encoding.GetEncoding(932)
Dim beforeBytes() As Byte = utfEnc.GetBytes(beforeStr)
Dim afterBytes() As Byte = System.Text.Encoding.Convert(sjisEnc, utfEnc, beforeBytes)
Dim afterStr As String = sjisEnc.GetString(afterBytes)
TextBox3.Text = afterStr 'UTF8文字列
Dim reverseStr As String = afterStr
Dim reverseBytes() As Byte = sjisEnc.GetBytes(reverseStr)
Dim baseBytes() As Byte = System.Text.Encoding.Convert(utfEnc, sjisEnc, reverseBytes)
TextBox4.Text = utfEnc.GetString(baseBytes) 'SJIS文字列
としましたが、UTF8文字列が「陞溽判驪、陷代・」となり、
逆変換したSJIS文字列は、「変換�?E」となり、変換がうまくいかないようです。
上記のコードでは、SJIS->UTF8の変換はまずいのでしょうか?
それとも、そもそもおかしな事をやっているのでしょうか?
お知恵を拝借でいればと思います。
よろしくお願いいたします。