ANSII - UTF8
От: lollipop  
Дата: 08.07.08 11:19
Оценка:
Доброго времени суток. Вобщем вопрос такой.
Есть файл содержащий подобные строчки.
1.
\u0420\u2014\u0420\xb0\u0420\u0491\u0420\xb0\u0421\u2021\u0420\u0451 \u0420\u0458\u0420\u0405\u0420\xb5

Тоже самое на тарабарщине
2.
 Задачи РјРЅР

То же самое по русски
3.
Задачи мне

Внимание вопрос. Как сконвертировать 1 в 3 программно. Знаю что первый символ будет 1 \u0417 .
Всем спасибо
Re: ANSII - UTF8
От: maxkar  
Дата: 09.07.08 16:52
Оценка:
Здравствуйте, lollipop, Вы писали:

L> Внимание вопрос. Как сконвертировать 1 в 3 программно.

По шагам. Сначала сконвертировать первое во второе. Например, \u0420 — один char с шестнадцатеричным кодом 0420. Аналогично и с \x, только там двузначные числа. Может быть, есть еще какие-то последовательности вроде \n и \\, их тоже нужно заменять на соответствующие символы. Все остальные символы — так и идут в результат.
Затем сконвертировать второе в третье, например, так:
private static String c2t3(String s2) throws UnsupportedEncodingException {
  return new String(s2.getBytes("CP1251"), "UTF-8");
}
Re: ANSII - UTF8
От: thevery Россия  
Дата: 09.07.08 16:59
Оценка: 1 (1)
Здравствуйте, lollipop, Вы писали:
L> Внимание вопрос. Как сконвертировать 1 в 3 программно. Знаю что первый символ будет 1 \u0417 .

2 в 3:
(cp1251 в юникод)
println new String("Задачи РјРЅР".getBytes("CP1251"), "UTF-8")


1 в 2:
(чары в стринги)

char c1 = (char) Integer.parseInt("0420", 16)
println new String(c1).getBytes("CP1251")
char c2 = (char) Integer.parseInt("b0", 16)
println new String(c2).getBytes("CP1251")


может есть и какие автоматические способы, но я не искал
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.