Путаница в Java Unicode

Привет всем, я только начал пытаться изучать Java и наткнулся на что-то, что действительно сбивает с толку!

Я печатал пример из книги, которую использую. Это продемонстрировать Тип данных char.

Код выглядит следующим образом:

public class CharDemo
{
public static void main(String [] args)
{
char a = 'A';
char b = (char) (a + 1);
System.out.println(a + b);
System.out.println("a + b is " + a + b);
int x = 75;
char y = (char) x;
char half = '\u00AB';
System.out.println("y is " + y + " and half is " + half);
}
}

Бит, который меня сбивает с толку, - это утверждение char half = '\ u00AB'. В книге указано, что \ u00AB - это код символа "1/2". Как описано, когда я компилирую и запускаю программу из cmd, в этой строке появляется символ «1/2».

Так что, похоже, все работает как надо. Я решил поиграть с кодом и попробовать несколько разных юникодов. Я поискал в Google несколько таблиц юникода и не обнаружил, что ни одна из них не согласуется с приведенным выше результатом.

В каждой, как я обнаружил, говорилось, что код / ​​u00AB не для «1/2», а фактически для этого:

http://www.fileformat.info/info/unic...r/ab/index.htm Итак, какой набор символов использует Java, я думал, что UNicode должен быть именно таким, Uni, только одним. Я искал несколько часов и нигде не смог найти набор символов, в котором указано, что / u00AB равно 1/2, но это то, что мой компилятор java интерпретирует как.

Я, должно быть, упустил что-то очевидное! Спасибо за любую помощь!

6
задан Nick 20 January 2011 в 12:54
поделиться