2016-03-17 4 views
1

У меня есть японская строка 'ぱ は め'. Я хочу преобразовать его в «% 82% CF% 82% CD% 82% DF». Надеюсь, кто-то даст мне функцию для этого преобразования.Япония кодировка символов

+0

Что делает ваша обычная функция кодирования URL? – Thilo

+0

моя функция немного длинная. пространства здесь недостаточно, чтобы написать мою функцию. Я не знаю, как добавить длинный текст здесь. –

ответ

1

Вам нужно взять строку и закодировать ее на определенной кодовой странице. Затем возьмите каждый закодированный байт и произведите его шестнадцатеричное представление. Как это:

function MyEncode(const S: string; const CodePage: Integer): string; 
var 
    Encoding: TEncoding; 
    Bytes: TBytes; 
    b: Byte; 
    sb: TStringBuilder; 
begin 
    Encoding := TEncoding.GetEncoding(932); 
    try 
    Bytes := Encoding.GetBytes(S); 
    finally 
    Encoding.Free; 
    end; 

    sb := TStringBuilder.Create; 
    try 
    for b in Bytes do begin 
     sb.Append('%'); 
     sb.Append(IntToHex(b, 2)); 
    end; 
    Result := sb.ToString; 
    finally 
    sb.Free; 
    end; 
end; 

Хотя ты не сказал этого, вы хотите, чтобы закодировать текст в качестве кодовой страницы 932. Таким образом, вы должны передать это значение при вызове функции.

Writeln(MyEncode('ぱはめ', 932)); 

Должен сказать, что в современный день несколько удивительно, что эта кодировка с использованием нескольких байтов в Windows все еще используется.

+0

Большое вам спасибо за то, что помог мне. Теперь я могу решить свою проблему. Еще раз спасибо. :) –

 Смежные вопросы

  • Нет связанных вопросов^_^