forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   Кодировка (http://forum.boolean.name/showthread.php?t=2169)

v0id 22.12.2006 21:56

Кодировка
 
совсем запутался с ней... Принимаю с формы строку... и она в хз каком формате, надо передать ее на сайт отправки смс в кои8... вроде как сделал перевод в кои затем перевод в html кодировку... на эмуляторе работает а на телфоне (моторола) опять косяк =( в чем же дело?

IVenoMI 23.12.2006 14:58

Re: Кодировка
 
С моторолами практически не работал, однако могу предположить, что телефон использует свою внутреннюю кодировку символов...

Протесть что он выдает посимвольно и напиши таблицу преводов...

v0id 23.12.2006 16:12

Re: Кодировка
 
проверил на сименсе, тож самое...

IVenoMI 23.12.2006 18:37

Re: Кодировка
 
Хм... У меня на Сименсе таких проблем не было...

Возможно ошибка как раз в твоей процедуре перекодировки...

v0id 23.12.2006 19:25

Re: Кодировка
 
эх.. нету ошибок у меня а вот мидлетпаскале.... кароче сделал след. когда из формы получаю строку перековерковываю ее в Ansi после этого пытался в кои8 сразу и затем в хтмл.. но не выхожит.. не сработывает... решил изменить перекодировку в кои 8... и выяснилось что примерно такой код "if 242 = 242 then то то...." не срабатывает! изменил код немного.. построив по другому сравнение и все заработало....

ЗЫ: лучше начну потом яву учить чем ето г юзать....

IVenoMI 24.12.2006 01:03

Re: Кодировка
 
Это вопрос мнений, мне с Дельфи подручнее было перепрыгивать на Мидлет Паскаль, хотя Яву я тоже достаточно неплохо знаю...

Кстати, ради интереса, скинь начальный и конечный вариант кода...

v0id 27.12.2006 18:43

Re: Кодировка
 
Код:

function HexDigit(i: Integer): String;

var

  hchr: array[0..15] of Char;

begin

    hchr[0]:= '0';

    hchr[1]:= '1';

    hchr[2]:= '2';

    hchr[3]:= '3';

  hchr[4]:= '4';

    hchr[5]:= '5';

  hchr[6]:= '6';

    hchr[7]:= '7';

    hchr[8]:= '8';

    hchr[9]:= '9';

    hchr[10]:= 'A';

    hchr[11]:= 'B';

    hchr[12]:= 'C';

    hchr[13]:= 'D';

    hchr[14]:= 'E';

    hchr[15]:= 'F';

   

    HexDigit := hchr[i and $F];

end;



function Byte2Hex(i: Integer): String;

var

  s: String;

begin

  s := HexDigit( i and $F );

  i := right(i, 4); //i div 16; //shr 4;

  Byte2Hex := HexDigit( i and $F ) + s;

end;



function tohtmlcode(s: String): String;

var

  r: String;

    i: Integer;

begin

  r := '';

  for i := 0 to Length(s) - 1 do

    r := r + '%' + Byte2Hex(Ord(GetChar(s, i)));

  tohtmlcode:= r;

end;



function Str2UTF8(sta: string):string;
var    ia: integer;    saa : string;
begin
    saa:='';
    for ia:= 0 to Length(sta) do
        if GetChar(sta, ia) > '~' then
            saa:= saa + Chr(Ord(GetChar(sta, ia)) - 64432)
        else
            saa:= saa + GetChar(sta, ia);
    Str2UTF8:= Copy(saa, 0, Length(saa)-1);
end;


function Str2ASCII(sta: string):string;
var    ia: integer;    saa: string;
begin
    saa:='';
    for ia:= 0 to Length(sta) do
    if GetChar(sta, ia) > '~' then
        saa:= saa + Chr(Ord(GetChar(sta, ia)) + 64432)
    else
        saa:= saa + GetChar(sta, ia);
    Str2ASCII:= Copy(saa, 0, Length(saa)-1);
end;


function mp(s, sub: String): Integer;

var

    i: Integer;

begin

    mp:= -1;

    for i:= 0 to Length(s) - 1 do begin

        if tohtmlcode(GetChar(s, i)) = tohtmlcode(sub) then begin

            mp:= i;

            Break;

        end;

    end;

end;



function WinKoi(st: String): String;

var

  i:      Integer;

    z:  Integer;

  s:  String;

  win: String;

  koi: String;

begin

  s := st;

  win := Chr(168) + Chr(84) + Chr(254) + Chr(224) + Chr(225) + Chr(246) + Chr(228) + Chr(229) + Chr(244) + Chr(227) +

Chr(245) + Chr(232) + Chr(233) + Chr(234) + Chr(235) + Chr(236) + Chr(237) + Chr(238) + Chr(239) + Chr(255) + Chr(240) +

Chr(241) + Chr(242) + Chr(243) + Chr(230) + Chr(226) + Chr(252) + Chr(251) + Chr(231) + Chr(248) + Chr(253) + Chr(249) +

Chr(247) + Chr(250) + Chr(222) + Chr(192) + Chr(193) + Chr(214) + Chr(196) + Chr(197) + Chr(212) + Chr(195) + Chr(213) +

Chr(200) + Chr(201) + Chr(202) + Chr(203) + Chr(204) + Chr(205) + Chr(206) + Chr(207) + Chr(223) + Chr(208) + Chr(209) +

Chr(210) + Chr(211) + Chr(198) + Chr(194) + Chr(220) + Chr(219) + Chr(199) + Chr(216) + Chr(221) + Chr(217) + Chr(215) +

Chr(218) + Chr(144);



  koi := Chr(168) + Chr(184) + Chr(192) + Chr(193) + Chr(194) + Chr(195) + Chr(196) + Chr(197) + Chr(198) + Chr(199) +

Chr(200) + Chr(201) + Chr(202) + Chr(203) + Chr(204) + Chr(205) + Chr(206) + Chr(207) + Chr(208) + Chr(209) + Chr(210) +

Chr(211) + Chr(212) + Chr(213) + Chr(214) + Chr(215) + Chr(216) + Chr(217) + Chr(218) + Chr(219) + Chr(220) + Chr(221) +

Chr(222) + Chr(223) + Chr(224) + Chr(225) + Chr(226) + Chr(227) + Chr(228) + Chr(229) + Chr(230) + Chr(231) + Chr(232) +

Chr(233) + Chr(234) + Chr(235) + Chr(236) + Chr(237) + Chr(238) + Chr(239) + Chr(240) + Chr(241) + Chr(242) + Chr(243) +

Chr(244) + Chr(245) + Chr(246) + Chr(247) + Chr(248) + Chr(249) + Chr(250) + Chr(251) + Chr(252) + Chr(253) + Chr(254) +

Chr(255) + Chr(144);



  for i := 0 to Length(s) - 1 do begin

        z := {Pos}mp(win, GetChar(s, i));

        if (z > -1) then

          s:= SetChar(s, GetChar(koi, z), i);

    end;

   

  WinKoi := s;

end;

затем Text:= Str2ASCII(GetTextBoxString);
и перед пост запросом tohtmlcode(WinKoi(Text));

вопчем что то типа того, сначало было проще)

я сейчас на делфи пишу, пока перевел на мидлет паскаль этот банальный код изматерился весь %))


Часовой пояс GMT +4, время: 21:19.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot