2017-01-12 18 views
0

私の質問は、標準のjava-library-functionsを使って文字列をバイト配列に変換する簡単な方法があるかどうかです。 "文字列"はエンコードなしを持っていますが、文字列自体は理由がない文字列ですが、それは私がそれを得る方法です。私は自分でそれをコード化していないし、変更することはできないが、私はそれに対処しなければならない。標準のString.getBytes()は、一部の値が常に "?"になってしまい、基本となるバイナリデータが明らかに役に立たないために機能しません。文字列から生のバイト配列を取得

アイデア?

これは基本的にはここと同じ質問です:How do I get a consistent byte representation of strings in C# without manually specifying an encoding?ではなく、C#for Javaです。私はかなりの時間を捜しましたが、私は適切な解決策を見つけることができませんでした。

ありがとうございます。

+0

扱っている文字列を表示することができれば、お手伝いできます。また、エンコーディングがない場合は、なぜいくつかのバイトが書き出されます。どのOSを実行していますか? –

+0

関連性はありますか? http://stackoverflow.com/questions/23316755/java-string-getbytes-charsetname-vs-string-getbytes-charset-object –

+0

「?」を示す文字列を共有してください。変換中。 ほとんどの場合、文字エンコーディングに関する問題は、 'UTF-8'で試してください –

答えて

1

残念ながら、Javaでは「Stringエンコードなし」はありません。 documentationが言うように:

Stringは、UTF-16形式

内の文字列を表しますので、あなたはそれが既に符号化されStringなどのデータを取得し、その周りに方法はありません瞬間。

0

Javaの場合、Stringは、charの配列を囲むラッパーであり、byteもありません。さらに、ストリングは不変であるため、基礎となるchar[]への直接アクセスは許可されません。

直接アクセスに最も近いものがあります:

  • はchar型の配列
char[] toCharArray() 

のコピーはこの文字列を新しい文字配列に変換します。

  • インデックス
char charAt(int index) 

の文字が指定したインデックス位置にあるchar値を返します取得します。

関連する問題