Итак, я работал над чем-то, что помогло мне с некоторыми математиками и отображением работы, и все работает хорошо, но для вывода на консоль мне нужно иметь возможность отображать надстрочный индекс Unicode и индекс. У меня было установить сначала с помощью следующей функции для верхнего индекса:Ошибки нескольких блоков Unicode
public static String getBase(int num){
String uniStr = "\\u207";
String numStr = Integer.toString(num);
String res = "";
for(int i = 0; i < numStr.length(); i++){
String s = uniStr + numStr.charAt(i);
char c = (char) Integer.parseInt(s.substring(2), 16);
res += c;
}
return res;
}
Это работало отлично до такой степени, но при использовании следующего вызова для отладки:
System.out.println(Unicode.getBase(1234567890));
Я получил выход:
ⁱ⁴⁵⁶⁷⁸⁹⁰
из-за надстрочного индекса для 1, 2 и 3, имеющих далеко друг от друга идентификаторы Unicode в блоке unicode Latin1-Supplement, в отличие от того, чтобы быть в блоке надстрочного/нижнего индекса с другими символами , Поэтому я добавил переключатель заявление в попытке справиться с этими 3 конкретно, в результате чего:
public static String getBase(int num){
String uniStr = "\\u207";
String numStr = Integer.toString(num);
String res = "";
for(int i = 0; i < numStr.length(); i++){
String s = "";
switch(numStr.charAt(i))
{
case '1':
s = "\\u00B9";
break;
case '2':
s = "\\u00B2";
break;
case '3':
s = "\\u00B3";
break;
default:
s = uniStr + numStr.charAt(i);
}
char c = (char) Integer.parseInt(s.substring(2), 16);
res += c;
}
return res;
}
И еще теперь я получаю выход:
¹²³⁴⁵⁶⁷⁸⁹⁰
за исключением того факта, что только 1, 2 и -теперь будет отображаться в консоли, с 4-0 всеми имеющим инвалидом коробка характера, как:
¹²³ࢆࢆࢆࢆࢆࢆࢆ
Я знаю, за то, что переключатель работает, как доказан на 1, 2 и 3 показывает, что все правильно, а синтаксический анализ Строка для других персонажей также работает, но это все еще происходит. Для жизни меня я не могу найти решение или даже повод для этого. Если я использую символы из одного блока Unicode, он пытается также захватить все остальные символы из этого диапазона, и если я могу что-нибудь сделать с этим? Это кажется единственной вероятной причиной, о которой я могу думать, в противном случае я здоров и по-настоящему тупик. Любая помощь будет чрезвычайно оценена.
P.S. У меня есть мои запустить конфиги в Eclipse, установлены в UTF-8 и все эти символы поддерживаются
Возможный дубликат [Распечатка unicode из проблемы с кодом Java в консоли Windows] (http://stackoverflow.com/questions/20386335/printing-out-unicode-from-java-code-issue-in-windows-console) –
проблема заключается в поддержке Windows Unicode, а не в Java. [Вход в Unicode в консольном приложении в Java] (http://stackoverflow.com/q/8669056/995714) –