1

NET は vbUnicode UTF32Encoding/UTF32Decoding と同等ですか?

4

3 に答える 3

5

vbUnicode は単なる定数です。それ自体は無意味です。コードを見せてください。そして、あなたは何をしようとしていますか?

このようにStrConvで ANSI 文字列を UTF32 に変換していますか?

newString = StrConv(ansiString, vbUnicode) 

Encoding.Defaultは ANSI エンコーディング用であるため、VB.Netに相当するものはEncoding.Default.GetStringである可能性があります。

newString = Text.Encoding.Default.GetString(ansiStringAsByteArray) 

ただし、ANSI 文字列を取得するために使用したコードに依存する場合があります。

于 2012-10-14T08:21:42.957 に答える
3

何を探しているのかわかりませんがEncoding、特にクラスEncoding.UTF32Encodingはおそらくあなたが必要としているものです。

于 2012-10-14T07:44:13.303 に答える
0

Encoding.Default@MarkJの回答からはうまくいきましたが、デフォルトはロケールに依存しているように見えるので、少し緊張しました。文字セットを明示的に指定する方法を示すKB 311338が見つかりました。西ヨーロッパ文字には 1252 をお勧めします。マークの例を変換すると、次のようになります。

newString = System.Text.Encoding.GetEncoding(1252).GetString(ansiStringAsByteArray) 

私の米国英語システムでは、 と同じ結果が得られますが、Encoding.Default理論的には 1252 を指定すると、ロケールに関係なく同じ結果が得られるはずです。

2016 年 1 月 18 日更新

以下の@MarkJのコメントを見た後、もう少し調査を行ったところ、指定しない限り、 VB6 StrConvは実際にはデフォルトのロケールを使用することがわかりました。(また、LocaleID のみを指定できます。たとえば、米国英語の場合は 1033 であり、ANSI コード ページ (西ヨーロッパの場合は 1252) は指定できませんEncoding.Default) StrConvGetEncoding(1252)Mark の VB6 の例にはなかった特異性を追加します。

于 2016-01-16T01:48:01.630 に答える