![]() |
Конвертирование кодировки utf для отображk
Ктото знает как utf кодировку перекодировать в родную телефона, чтоб она нормально отображалась в форме
вот пример текста (Чувствуешь, кто-то нежно целует твои РіСѓР±С‹ - это СЏ нежно целую тебя перед СЃРЅРѕРј. РЎРїРѕРєРѕР№РЅРѕР№ ночи! *) |
Ответ: Конвертирование кодировки utf для отобра
|
Re: Конвертирование кодировки utf для отображ&
Спс, щас поробую
|
Re: Конвертирование кодировки utf для отображ&
а как передать не ресурс а сроку?
|
Ответ: Конвертирование кодировки utf для отобра
Код:
Function StrToUtf8(s: string;): string; // Корректирует русскую кодировку в строках взятых из ресурсов...у меня работает ;) |
Re: Конвертирование кодировки utf для отображ&
у меня не рабоатет (
|
Ответ: Конвертирование кодировки utf для отобра
оно работает когда текст в формате UTF-8
|
Re: Конвертирование кодировки utf для отображ&
Чувствуешь, кто-то нежно целует твои губы - это я нежно целую тебя перед сном. Спокойной ночи!
это утф 8 но он никак не реагирует... |
Ответ: Конвертирование кодировки utf для отобра
Вроде как UTF и UTF-8 разные кодировки, перекодировать нужно. Kurdt, приложи файл в UTF, попробую разобраться, как его перекодировать.
|
Re: Конвертирование кодировки utf для отображk
вот http://webfile.ru/2319205
почемуто вложения не работают |
Ответ: Конвертирование кодировки utf для отобра
UTF - это, как я понимаю, семейство кодировок. Туда входят UTF-8, UTF-16 и другие. Моя функция преобразует считанный из ресурса текст в UTF-8 в UNICODE, который можно отображать в Java. Перекодируются все возможные символы, любого языка, которые только может отобразить UNICODE/UTF-8 (даже значки всякие прикольные, вот только главное, чтобы тел их поддерживал, но если не поддерживает, то конвертация всё равно произойдёт, просто тел отобразит такие символы как квадратики или точки). НО! Если в тексте ресурса, который скармливаем моей функции находится хотя бы один символ, который закодирован НЕ В UTF-8, то функция возвращает пустую строку (можно исправить это, чтобы просто пропускала, например, такие символы, но я себе цель ставил просто побыстрее написать и затестить, будет ли работать).
beZ_probleM, твоя функция, как я понял, конвертирует из UTF-8 только узкий диапазон символов, в который входят русские буквы. А моя перекодирует полный диапазон всех символов (горжуся собой, гг). =) Цитата:
Чувствуешь, кто-то нежно целует твои РіСѓР±С‹ - это СЏ нежно целую тебя перед СЃРЅРѕРј. РЎРїРѕРєРѕР№РЅРѕР№ ночи! , то каждый из байтов примет вид юникода. Перекодировку нужно делать именно при чтении из ресурса или интернета, или файла из файловой системы. Но как запихуть в исходник, например, строку юникодную, в которой есть разные национальные символы - я сам не знаю. Точнее знаю, но вам этот способ не понравится. Например так (код на Java): PHP код:
PHP код:
|
Re: Конвертирование кодировки utf для отображ&
я загружаю с интерента строку и у меня там вместо текста вот такие крякозяблы выдает
Чувствуешь, кто-то нежно С тоесть автоматически не переводит, почему ? Может в начало строки нада чтото вставить? |
Ответ: Конвертирование кодировки utf для отобра
Через мою функцию пропускаешь? Если нет, токрякозябры и будут.
|
Re: Конвертирование кодировки utf для отображ&
Это 2 байтный уникод
|
Ответ: Re: Конвертирование кодировки utf для отображ&
Цитата:
|
Ответ: Конвертирование кодировки utf для отобра&
Даже если это двухбайтный юникод, будут крякозябры! Объясняю ещё раз. Считываем побайтно и приписываем каждый байт по очереди к строке. А каждый байт (БАЙТ, но не СИМВОЛ) в строке становится юникодным. Тебе ВО ВРЕМЯ ЧТЕНИЯ из интернета нужно по два байта объединять и только тогда присоединять к строке. Типа считываешь один байт, умножаешь его на 256, потом считываешь второй байт, прибавляешь его к предыдущему И ТОЛЬКО ПОСЛЕ ЭТОГО присоединяешь то, что получилось, с меткой (char) к строке.
- - - Только дописал и сообразил, что у тебя не двухбуйтный юникод. Юникод ведь не так вроде в файлах хранят. У тебя скорее всего UTF-8. Вот моя функция как раз парсит принимаемый поток байт. Она имеет 4 "буферных" байта: int b1,b2,b3,b4; Именно четыре байта нужно, чтобы хранить самые "большие" символы в UTF-8. А из скольки именно состоит символ можно узнать по первому байту. Вот так и парсится поток. Но чуть сложнее, чем я выше описал, так как нужно ещё в юникод перевести полученный текст. Кто серьёзно хочет вникнуть, прочитайте в википедии про UTF-8 и UNICODE, и зацените же, наконец, мою функцию. Я старался =) Поймите же, мультибайтные кодировки просто так в строку не запишешь в Java (да и вообще наверное нигде). - - - Я не знаю, как ещё понятнее объяснить. В Java в строках используется ВСЕГДА UNICODE. Если мы что-то присваиваем к строковой переменной, то каждый "байт" в этой строке имеет код юникода (то есть он может быть и больше 255, то есть это не байт даже, а символ). Даже если вы считываете однобайтную кодировку типа ANSI, то при присваивании такого текста строке происходит конвертация в юникод ВСЕХ символов с кодами больше 127 (те, что меньше 128 и в юникоде тоже один байт). То есть КОДЫ БАЙТОВ меняются и становятся больше 255. Байт имеет свой старый код, пока его не приконкатенировали к строке. - - - Ща напишу функцию, которая будет при вызове считывать ОДИН символ из потока (UTF-8). Но это совершенно НЕ ОЗНАЧАЕТ, что из потока при вызове этой функции будет считатан ровно один байт. Если байт в потоке не в UTF-8, то... Даже хз пока что будет, так как парсер сбиться может. Подумаю ещё. |
Ответ: Конвертирование кодировки utf для отобра
Сделал либу для мидлет паскаля. Точнее сказать, переписал предыдущую. Результаты ужасные. Убрал из либы цикл, открытие/закрытик ресурса, кое-что переделал, то есть цикл для считывания и открытие/закрытие ресурса теперь надо в паскале организовывать. Организовал. Считывание стало в десятки раз медленнее!!! Вот это жо..а! Раньше на Сименсе длинный текст открывался за 700 с чем-то милисекунд, а сейчас я вообще не дождался. Укоротил текст раз в 50, тогда только открыл за две секунды. Видимо и длинный открыл бы... Минуты через две... Полагаю, либу выкладывать нет смысла. Нужно цикл в java организовывать, а не в паскале...
|
Re: Конвертирование кодировки utf для отображ&
Наконецто, для русского языка написал
PHP код:
|
Ответ: Re: Конвертирование кодировки utf для отобра
function trans(s: string):string;
var s1: string; gc: integer; begin s1:=''; for i:=0 to length(s) do begin gc:=ord(getChar(s,i)); if (gc>223) then begin s1:=s1+chr(848+gc); end; if (gc<223) then begin s1:=s1+chr(gc); end; end; trans:=s1; end; у меня этот код работает, если я получаю данные из нета (перекодирует маленькие русские буквы, а латиницу и другие символы оставляет без изменения), а вот с ресурсами хуже, еще не разобрался, тот код, который выложен выше у меня не работает |
Re: Конвертирование кодировки utf для отображ&
Scader это если исходная 1251 то да в моем случае получаю utf8 строку кодирую её в юникод телефона
в utf8 русские символы = 2 байта латиница ипр символы до 128 - 1 байт |
Ответ: Конвертирование кодировки utf для отобра
А перекодировщик из UTF8 обратно в Win у кого нибудь есть?
Просто если ищешь какое-то слово в файле ресурсов, то быстрее уже искать Win слово чем каждую строку переконвертировать в UTF8 и затем уже искать. |
Ответ: Конвертирование кодировки utf для отобра
А ты считай ресурс в строку и в ней ищи.
|
Ответ: Конвертирование кодировки utf для отобра

Цитата:
|
Ответ: Конвертирование кодировки utf для отобра
О_о... Я читал, что некоторые телефоны при открытии ресурса сразу в оперативу файл помещают, независимо от того, читаешь ты из него что-то или нет. Вроде про нокии так написано было. И поэтому, я считаю, что такой огромный ресурс и класть в прогу не стоит. гг
|
Ответ: Конвертирование кодировки utf для отобра
Я лично наблюдал, что даже на тормознутом сименсе работает англо/русский словарь, размером в распакованном виде чуть более 2 Мб, а ведь там оперативки мало. Хотя на Нокии может быть всё что угодно.
|
Ответ: Конвертирование кодировки utf для отобра
О_о Офигеть... В инструкции к семёнам я читал, что они могут работать с Джава приложениями, размер которых не превышает 360 килобайт. И действительно, сколько приложений я пытался ставить хотя бы немного превышающие этот лимит, приложение не запускалось и выдавало какую-то ошибку. Какую именно понятия не имею, это было ещё во времена, когда я даже не знал, что такое php, не то что Java =)
|
Ответ: Конвертирование кодировки utf для отобра&
Я запускал на своем древнем семёне java-книгу размером >700 КБ. Качал через оперу мини, потому что стандартный браузер не позволяет скачивать такие большие приложения.
|
Ответ: Конвертирование кодировки utf для отобра
Помогите!!! как с этими кодировками работать!?? я реально уже целый день с ними справится не могу сил уже нет!!! пользуюсь либой encoding, на хосте в UTF8 ответ отправляю, из какой кодировки в какую переводит? когда данные отправляю и получаю.
|
Ответ: Конвертирование кодировки utf для отобра
По идее, если сразу UTF-8 отправляется, то ничего конвертировать не надо, но на деле бывают всякие непонятные проблемы.
|
Ответ: Конвертирование кодировки utf для отобра
Вот данные из интернета я обрабатываю через функцию которую выше написал Kurdt, у меня кирилица нормально отображаеться, дайте пожалуиста функцию чтобы GET POSR запросы обробатывать перед отправкой, и фообще в какой кодировке в телефоне тект который я в нем набираю
|
Ответ: Конвертирование кодировки utf для отобра
Телефон работает с кодировкой UTF-8
|
Ответ: Конвертирование кодировки utf для отображk
А почему в таком случае я отправляю в get запросе информацию введеную в форме телефона, на сайт приходят каракули?
|
Ответ: Конвертирование кодировки utf для отобра&
Цитата:
|
Ответ: Конвертирование кодировки utf для отобра
Ты написал пример на ява три символа как переделать, а на мидлет паскале как быть? :)
|
Ответ: Конвертирование кодировки utf для отобра
Я фиг знает :) повешаюсь скоро :) вроде бы элементарное русский текст отправить в интернет, а ни как, как же их опера мини, аська и другие приложения отправляют?
|
Ответ: Конвертирование кодировки utf для отобра
Когда строку отправляешь в поток, она автоматически перекодировывается в ASCII. В этой кодировке нет русских символов вообще. Тебе нужно строку в цикле посимвольно перекодировать обратно в ANSI. Алгоритм такой же, как при чтении, но всё наоборот. Или перекодировать в UTF-8. С этим сложнее. Немного.
|
Ответ: Конвертирование кодировки utf для отобра
А почему до сих пор нет функции ни какой? Проблема то вобще простая :) я скоро застрелюсь.
|
Ответ: Конвертирование кодировки utf для отобра
Ну может на днях сделаю, если буде время и не будет лень :-D
|
Ответ: Конвертирование кодировки utf для отобра
Буду намного благодарен а то я просто так не отстану :)
|
Ответ: Конвертирование кодировки utf для отобра&
Ultimat #35
Цитата:
|
Ответ: Конвертирование кодировки utf для отобра&
В моем случае обычный UTF-8 показывается написанной тут функцией toUtf8code, данные читаю с инета, перекодирую этой функцией и показываю - все ок.
|
Ответ: Конвертирование кодировки utf для отобра
У меня немного другая проблема по этой теме:если тхт не пересохранить в ворде,то при открытии его как ресурса мидлет повисает.Вопрос:в какой кодировке надо сохранять файл через блокнот,чтоб мидлет не повисал?
|
Ответ: Конвертирование кодировки utf для отобра

Цитата:
|
Ответ: Конвертирование кодировки utf для отобра&
Не помогает,в кемуляторе в логе пишет аутофмемори.Неудобно каждый файл вордом пересохранять.Так у всех или тока у меня?
|
Ответ: Конвертирование кодировки utf для отобра&
Цитата:
|
Ответ: Конвертирование кодировки utf для отобра&
Цитата:
|
Ответ: Конвертирование кодировки utf для отобра
Короче, это стандартная ошибка когда программа не может определить конец файла. Попробуй применить стандартный метод решения - в конце файла вставить строку типа "###" и читать строки так:
PHP код:
|
Ответ: Конвертирование кодировки utf для отобра
еще важный момент - после строки с меткой ("###") нужна еще 1 пустая строка
|
Ответ: Конвертирование кодировки utf для отобра
Ну ### я и так пользовался,а вот насчет пустой строки,сейчас проверю
|
| Часовой пояс GMT +4, время: 12:37. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot