0
可能性の重複:
Whats the diffrence between an array<Byte>^ and a byte*?System :: String ^をバイト*にUTF8Encodeできますか?
私はしかし、UTF8Encodingについての作品を翻訳++、CにはいくつかのC#コードを翻訳していますが、私は私がバイトを必要としながら^配列を返す++、C *動けなくなります転回型として。私はこのコードに長時間を費やそうとしていますが、私は失敗し続けます。どのようにバイト*を返すように変更できますか?
array<Byte>^ StrToByteArray(System::String^ unicodeString)
{
UTF8Encoding^ utf8 = gcnew UTF8Encoding;
array<Byte>^ encodedBytes = utf8->GetBytes(unicodeString);
return encodedBytes;
}
返信いただきありがとうございます。私はそれを動作させるためにコードに3つの変更を加えなければならなかった、あなたは1つを忘れてしまった。 forではバイトを使用していて、バイトは使用していません。行のバイト[len] = 0;まだエラーが出てくるが、私はそれを残してみるとすべてがうまくいくようだ。ここでそれを使ったのは何ですか? – Andy
@Andy:utf-> GetBytesがヌルで終了するデータを返すかどうかわからないので、それは安全対策であった。そのため、安全であるためにゼロバイトが追加されています(GetBytesのドキュメントでゼロ終了データが返された場合は、その行を省略してください)。 – smerlin
入力文字列にヌル文字を含めることができ、これらはUTF8で値「0x00」のコード単位としてエンコードされます。 – dalle