UTF - это, как я понимаю, семейство кодировок. Туда входят UTF-8, UTF-16 и другие. Моя функция преобразует считанный из ресурса текст в UTF-8 в UNICODE, который можно отображать в Java. Перекодируются все возможные символы, любого языка, которые только может отобразить UNICODE/UTF-8 (даже значки всякие прикольные, вот только главное, чтобы тел их поддерживал, но если не поддерживает, то конвертация всё равно произойдёт, просто тел отобразит такие символы как квадратики или точки). НО! Если в тексте ресурса, который скармливаем моей функции находится хотя бы один символ, который закодирован НЕ В UTF-8, то функция возвращает пустую строку (можно исправить это, чтобы просто пропускала, например, такие символы, но я себе цель ставил просто побыстрее написать и затестить, будет ли работать).
beZ_probleM, твоя функция, как я понял, конвертирует из UTF-8 только узкий диапазон символов, в который входят русские буквы. А моя перекодирует полный диапазон всех символов (горжуся собой, гг). =)
а как передать не ресурс а сроку?
|
Сроки, тьфу ты, то есть сТроки в Java сразу принимают вид юникода. То есть если ты присвоишь строке что-то подобное:
Чувствуешь, кто-то нежно целует твои губы - это я нежно целую тебя перед сном. Спокойной ночи!
, то каждый из байтов примет вид юникода. Перекодировку нужно делать именно при чтении из ресурса или интернета, или файла из файловой системы. Но как запихуть в исходник, например, строку юникодную, в которой есть разные национальные символы - я сам не знаю. Точнее знаю, но вам этот способ не понравится. Например так (код на Java):
String s = (char)0x1040+(char)0x1041+(char)0x1042;
Создастся строка из трёх символов UNICODE с соответствующими кодами. Целые тексты так набирать не очень удобно, поэтому, если кто-то знает, как в исходник скормить UNICODE, то объясните. На скорость и размер кода это никак не влияет, так как при компиляции любая заданная строка в конечном классе принимает вид юникода. Неважно, явно мы написали что-то вроде:
String s = "Привет!!! =)";
или по кодам символов, как я написал выше.