Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   [решено] MySql, PHP | Что на самом деле хранится в базе? (http://forum.oszone.net/showthread.php?t=137200)

hasherfrog 09-04-2009 13:30 1088813

MySql, PHP | Что на самом деле хранится в базе?
 
Всем привет.

У меня своего рода затруднение. Есть форум, юзер постит, в базу попадает. Всё отлично.

Предположим, постится какой-нибудь хитрый unicode-символ, которого в ASCII-кодировке нет.
Я хочу узнать, как этот символ хранится в базе. В виде hex-кода его хочу увидеть. Хоть как-нибудь.

Предположим, пользователь постит
1 - – — 1

Это соответствует минусу, вордовому тире &#8211 (UTF-8 (e2, 80, 93) тАУ) и коду &#151 , соответственно.

Как, в шестнадцатиричном виде, это будет лежать в базе?
Я написал затычку, она говорит что там будет
31 20 2d 20 96 20 97 20 31 3c 62 72 3e

Код затычки:
PHP код:

$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

hasherfrog 09-04-2009 14:05 1088839

Сделал экспорт через xml, получил что там
Код:

<post>1 - тАУ тАФ 1&lt;br&gt;</post>
Тогда новый вопрос.
Как в PHP коде мне обратится к таким символам?
Предположим, мне надо найти, не использовал ли юзер тире.

Как выглядит PHP-код?
Пытался так:
PHP код:

preg_match("$&_151;$"); (без подчёркивания

Не находит, ну правильно, там же "тАФ" вместо этого?

Что, так и писать
PHP код:

preg_match("$тАФ$"); 

??? %-(

hasherfrog 09-04-2009 15:29 1088930

Там оказались именно 96 20 97.
В общем, я разобрался.


Время: 11:22.

Время: 11:22.
© OSzone.net 2001-2025