質問

VB2008で文字列を他の文字コードにする方法が知りたいです。
何かしての部分がわかりません。
VB2005でも使えるものだったらうれしいです。

Dim str_sjis as string
Dim str_euc as string = "パソコン" '例えばEUC-JP

'''何かして

str_sjisにシフトJISで文字列が入っている。


.Netの文字コードの変換の仕方がごちゃごちゃして分かりづらいです。

通報する

回答 (2件)

EUC文字列のByte配列からEncodingのGetStringで変換すれば良いでしょう

dim ss as String = System.Text.Encoding("EUC-JP").GetString(eucBytes)
でUnicode文字列へ変換できると思います

文字セットの変換には Sysytem.Text.Encodingクラスを使います
VB.NETの文字列は基本的にUnicodeです

1) 元の文字列変数から UnicodeのByte配列を取得
2) Byte配列から Sysytem.Text.Encoding.Convertを使って変換先のByte配列を作成
3) このバイト配列をファイル等に出力
といった手順です
2)の変換をする際に 元のエンコーディングオブジェクトと変換先のエンコーディングオブジェクトが必要になります


' エンコーダを取得 EUC-JP or Unicode
dim uniEnc as System.Text.Encoding = System.Text.Encoding.Unicode
dim eucEnc as System.Text.Encoding = System.Text.Encoding.GetEncoding("EUC-JP")
' 元文字列をByte配列へ
dim ss as String = "パソコン"
dim uniBytes() as Byte = uniEnc.GetBytes( ss )
' UnicedeのByte配列からEUC-JPのバイト配列に変換
dim eucBytes() as Byte
encBytes = System.Text.Encoding.Convert( uniEnc, eucEnc, uniBytes)
' ファイル出力
dim st as new System.IO.FileStream("ファイルパス", IO.FileMode.Create)
st.Write( eucBytes, 0, eucBytes.Length )
st.Close()

この回答への補足

ファイル出力でなく、encBytes を文字列にしたい場合は
どうすればよいのでしょうか?

説明が足りなかったのですが私がやりたいのは
HTMLを読み込んだ場合にEUC-JPだったものをVB.NETで処理できる
SJIS?(Unicode??)に内部的に変換し、その文字列を使いたいです。

このQ&Aは役に立ちましたか?3 件

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

新しく質問する

注目の記事

コサージュを使いこなすには・・・

コサージュの基本的な付け方から、TPOに合わせたコサージュの選び方についてまとめました。

このQ&Aを見た人が検索しているワード


新しく質問する

このカテゴリの人気Q&Aランキング

毎日見よう!教えて!gooトゥディ

べんりQ&A特集