![]() |
А МР кирилицу выводит?
Помогите плиз!!!
Я на МР пытался вывести из ресурс файла текст на кирилице, в итоге выскакивают белые квадратики... P.S. текст забивал в самом МР... Заранее спасибо!!! |
Re: А МР кирилицу выводит?
j2me понимает только UTF-8 можно набрать в Блокноте а при сохранении поставить кодировку UTF-8
|
Re: А МР кирилицу выводит?
Спасибо конечно, но я это и так знаю... :) Тем более я в МР набирал текст, но проблема в том, что, не MidpX, не Motorola SDK, не телефон его в нормальном виде не выводят... :(
|
Re: А МР кирилицу выводит?
IMHO юзай сначала поиск а потом спрашивай >>:(
перед выводом конвертируй строку из win в utf таким вот макаром Код:
function Str2UTF8(s: string):string; |
Re: А МР кирилицу выводит?
Эффект другой, но не намного лучше, кирилицу не выводит...
|
Re: А МР кирилицу выводит?
это что за телефон такой? локаль хоть русская стоит?
|
Re: А МР кирилицу выводит?
Русская... Я и от эмуляторов добиться ничего не могу :(
Задаю просто строку, всё нормально... Но из файла читает как попало... Вот код... program NewProject3; var res:resource; st:string; function Str2UTF8(s: string):string; var i:integer; a:string; begin a:=''; for i:= 0 to Length(s) do if GetChar(s, i) > '~' then a:= a + Chr(Ord(GetChar(s, i)) - 64432) else a:= a + GetChar(s, i); Str2UTF8:= Copy(a, 0, Length(a)-1); end; begin res:=OpenResource('/data.txt'); st:=ReadLine(res); st:=Str2UTF8(st); drawText(st,0,0); repaint; delay(5000); end. P.S. data.txt набран в MP и содержит: Привет ВСЕМ!!! |
Re: А МР кирилицу выводит?
в МР файлы как раз и набираются в UTF8
|
Re: А МР кирилицу выводит?
Цитата:
|
Re: А МР кирилицу выводит?
Это гон какой то...
Записываю в data.txt символ "а" пишу код... for i:=0 to 66000 do if Chr(Ord(GetChar(st, i))-i)='а' then begin st:=integerToString(i); drawText(st,0,j); j:=j+10; end; Выдает 64464... Ставлю вместо i 64464 Выводит далеко не а??? :''(( |
Re: А МР кирилицу выводит?
kolyacher
Ты вроде тут счетчик цикла запихиваешь в st и потом st выводишь. Тебе надо выводить, насколько я понимаю, GetChar(st,i), а не само i. Вот только присваивать это строке st я бы не рекомендовал... Хотя я могу ошибаться. |
Re: А МР кирилицу выводит?
Цитата:
Надо if Chr(Ord(GetChar(st, 1))-i)='а' then вместо if Chr(Ord(GetChar(st, i))-i)='а' then, тогда рулит выдаёт 64384, выводит 'а'... Только со строкой проблемы... Не все символы нормальные??? Пхоже i для разных символов разное... |
Re: А МР кирилицу выводит?
Не все так плохо как я думал... :-) 64384 годиться для первых а..п, ё выпадает; для остальных и ё 64320. Заглавные не юзал, выводил по символьно, в строку лезет как неправильно...:wallbash:
|
Re: А МР кирилицу выводит?
Накатал процедурку может немного странной покажется, но у меня работает... :-)
function StrToUtf8(s:string):string; var i,j:integer; a:string; begin a:=''; for i:=1 to length(s)-1 do begin j:=ord(GetChar(s,i)); if ((j>65438 )and(j<65456))or((j>65455)and(j<65472))or((j>65423 )and(j<65439)) then a:=a+chr(j-64384) else if (j=65425)or((j>65407)and(j<65424)) then a:=a+chr(j-64320) else if j=65488 then begin a:=a+chr(j-65456); i:=i-1; end else begin a:=a+chr(j); i:=i-1; end; i:=i+1; end; StrToUtf8:=a; end; Одно "НО" После русских букв перед знаками препинания надо ставить пробел... |
Часовой пояс GMT +4, время: 20:43. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot