1
値-110(およびその他の負の値)を含むバイト[]があります。それを文字列に変換すると、 '(一重引用符)を表示する必要があります。現在、疑問符(?)を取得していますHTMLへのJava文字エンコーディングISO-8859-1
'は、this pageに記載されている特殊なASCII文字#146に揃えられていますが、今は-110または146(-110 + 256)とa '値である。私も納得しました。どんなアドバイスも大歓迎です。
byte[] b = {-110,84};
System.out.println(new String(b, Charset.forName("Windows-1252"))); //Displays ?T . The desired output should be ’T
System.out.println(new String(b, Charset.forName("UTF-8"))); //Displays ?T . The desired output should be ’T
System.out.println(new String(b, Charset.forName("ISO-8859-1"))); //Displays ?T . The desired output should be ’T
あなたのコンソールはおそらくその文字を印刷できません。あなたのコードを試してみると、最初の変種でうまく動作します。 – assylias
あなたのリンクは機能しませんが、[U + 0092](http://www.fileformat.info/info/unicode/char/92/index.htm)は私用文字です。 ASCIIには127以上の文字は含まれていないことに注意してください。「特殊ASCII」はありません。あなたが望むキャラクターのように見えます(あなたがペーストしたもの)はU + 2019です。これはISO-8859-1の一部ではありません。 –
あなたが今リンクしているページは、「ISO-8859-1では、128から159までの文字は定義されていません。これは事実ではありません.ISO-8859-1には当てはまりますが、ISO-8859-1には当てはまりません。 ([Wikipedia](https://en.wikipedia.org/wiki/ISO/IEC_8859-1)を参照してください)あなたがリンクしたページはあまり明確ではありませんが、あなたが見ている部分がWindows-あなたのコンソールはそれをサポートしていません。 –