hasherfrog
09-04-2009, 13:30
Всем привет.
У меня своего рода затруднение. Есть форум, юзер постит, в базу попадает. Всё отлично.
Предположим, постится какой-нибудь хитрый unicode-символ, которого в ASCII-кодировке нет.
Я хочу узнать, как этот символ хранится в базе. В виде hex-кода его хочу увидеть. Хоть как-нибудь.
Предположим, пользователь постит
1 - – — 1
Это соответствует минусу, вордовому тире – (UTF-8 (e2, 80, 93) тАУ) и коду — , соответственно.
Как, в шестнадцатиричном виде, это будет лежать в базе?
Я написал затычку, она говорит что там будет
31 20 2d 20 96 20 97 20 31 3c 62 72 3e
Код затычки:$hex="";
for ($i=0; $i < strlen($txt); $i++)
{ $hex .= dechex(ord($txt[$i])); $hex .= ' '; }
return $hex;
Но тут что-то явно не так. Дело даже не в "хвосте", а в том, что dechex(ord($txt[$i])) даёт один байт, а там явно unicode, байта три, наверное, предположительно что-то вроде "e2, 80, 93" должно быть.
Помогите, я что-то обессилел уже, тупак какой-то.
Да ё-моё, вот и тут уже всё переколбашивается.
второе тире - это &#_8211, а третье - &#_151
У меня своего рода затруднение. Есть форум, юзер постит, в базу попадает. Всё отлично.
Предположим, постится какой-нибудь хитрый unicode-символ, которого в ASCII-кодировке нет.
Я хочу узнать, как этот символ хранится в базе. В виде hex-кода его хочу увидеть. Хоть как-нибудь.
Предположим, пользователь постит
1 - – — 1
Это соответствует минусу, вордовому тире – (UTF-8 (e2, 80, 93) тАУ) и коду — , соответственно.
Как, в шестнадцатиричном виде, это будет лежать в базе?
Я написал затычку, она говорит что там будет
31 20 2d 20 96 20 97 20 31 3c 62 72 3e
Код затычки:$hex="";
for ($i=0; $i < strlen($txt); $i++)
{ $hex .= dechex(ord($txt[$i])); $hex .= ' '; }
return $hex;
Но тут что-то явно не так. Дело даже не в "хвосте", а в том, что dechex(ord($txt[$i])) даёт один байт, а там явно unicode, байта три, наверное, предположительно что-то вроде "e2, 80, 93" должно быть.
Помогите, я что-то обессилел уже, тупак какой-то.
Да ё-моё, вот и тут уже всё переколбашивается.
второе тире - это &#_8211, а третье - &#_151