- - PR -
バイト文字列とユニコードの変換
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-12-29 14:23
VB6 では、
ですが、.net で同等のことをするのは、
これでは駄目なんでしょうか? 文字が化けるんですが・・・ | ||||||||||||
|
投稿日時: 2005-12-29 14:39
化けませんでしたよ。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2005-12-29 14:47
サンプルを実行すると、元の文字列が表示されるので化けませんが、strconv で作成したバイト配列データを、System.Text.UnicodeEncoding.Unicode.GetString すると化けたのです。 このことから、 StrConv(変換前, vbFromUnicode) と System.Text.UnicodeEncoding.Unicode.GetBytes(変換前) 更に、 StrConv(バイト配列, vbUnicode) と System.Text.UnicodeEncoding.Unicode.GetString(バイト配列) は違う結果を返すのかと思ったのです。 | ||||||||||||
|
投稿日時: 2005-12-29 15:03
vbFromUnicode したものですからね。 そりゃ化けますよ。(^^;) System.Text.Encoding.Default.GetString だとどうなりますか? そもそも、System.Text.UnicodeEncoding.Unicode というのは冗長ですよ。 Unicode プロパティは基底クラスである Encoding クラスの所有物です。 ですので、 System.Text.Encoding.Unicode.GetString() とするか、 New System.Text.UnicodeEncoding().GetString() とするのが適切です。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2005-12-29 15:19
(T人T)神様...
文字化けした文字は表示されなくなりましたが、先頭のANK1文字のみが正常に変換されたのみで後は空白(何やらデータが入っているが変換後の文字が空白)になりました。 | ||||||||||||
|
投稿日時: 2005-12-29 15:37
そういう場合は、Byte の中身を比較してみましょう。 私はこうなりました。
正しいものが渡っているのであれば、正しく変換されるハズですよ。( ̄- ̄;) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2005-12-29 18:22
教えていただいた方法でテストしてみたところ、途中まで同じで、途中から違う内容になっていました。 この部分を修正したところ解決しました。 ありがとうございました。 |
1