я следующий код, который производит запутанный выход ..В чем разница между getBytes («UTF-8»), getBytes («windows-1252») и getBytes()?
import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
public class Main {
String testString = "Moage test String";
public static void main(String[] args) {
new Main();
}
public Main(){
System.out.println("Default charset: "+Charset.defaultCharset());
System.out.println("Teststring: "+testString);
System.out.println();
System.out.println("get the byteStreeam of the test String...");
System.out.println();
System.out.println("Bytestream with default encoding: ");
for(int i = 0; i < testString.getBytes().length; i++){
System.out.print(testString.getBytes()[i]);
}
System.out.println();
System.out.println();
System.out.println("Bytestream with encoding UTF-8: ");
try {
for(int i = 0; i < testString.getBytes("UTF-8").length; i++){
System.out.print(testString.getBytes("UTF-8")[i]);
}
System.out.println();
System.out.println();
System.out.println("Bytestream with encoding windows-1252 (default): ");
for(int i = 0; i < testString.getBytes("windows-1252").length; i++){
System.out.print(testString.getBytes("windows-1252")[i]);
}
System.out.println();
System.out.println();
System.out.println("Bytestream with encoding UTF-16: ");
for(int i = 0; i < testString.getBytes("UTF-16").length; i++){
System.out.print(testString.getBytes("UTF-16")[i]);
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
Так что я хотел, чтобы увидеть разницу между UTF-8 кодировке и Windows-1252. Но когда я смотрю на выход, кажется, что нет никакой разницы. Только когда я cdompare windows-1252 с utf-16, есть разница.
Выход:
> Default charset: windows-1252 Teststring: Moage test String
>
> get the byteStreeam of the test String...
>
> Bytestream with default encoding:
> 7711197103101321161011151163283116114105110103
>
> Bytestream with encoding UTF-8:
> 7711197103101321161011151163283116114105110103
>
> Bytestream with encoding windows-1252 (default):
> 7711197103101321161011151163283116114105110103
>
> Bytestream with encoding UTF-16:
> -2-1077011109701030101032011601010115011603208301160114010501100103
Может кто-нибудь объяснить мне, почему UTF-8 и окна-1252 выглядит так же?
Приветствия Alex
Поместите в тестовую строку некоторые специальные символы. Ваши текущие данные испытаний не отражают различия между кодировками. – f1sh
uaaa спасибо !! Я никогда не думал, что это что-то изменит. :) Теперь есть некоторые отличия. – Mansouritta