Получить значение ord () загадочного персонажа в PHP - PullRequest
0 голосов
/ 10 ноября 2011

У меня странный пробел, который каким-то образом вставлен в мою базу данных.Я хотел бы знать, что это за символ Unicode, но я сталкиваюсь с некоторыми проблемами.Например:

У меня есть строка "", где, казалось бы, обычный пробел - загадочный символ ". Затем я хочу получить значение ord(). Если я наберу echo ord(' ');, я получу 194, что неверноЯ знаю, что это какой-то символ Юникода, потому что если я сделаю echo strlen(' ');, я получу 2 назад.

Мне нужно знать значение этого символа в Юникоде, чтобы я мог выполнить запрос MYSQL, чтобы избавиться от него.это раз и навсегда в моей БД. Любая помощь с благодарностью.

Ответы [ 2 ]

2 голосов
/ 10 ноября 2011

В соответствии с php docs , ord () возвращает ASCII-значение символа. Если вы знаете, что ваш персонаж не ASCII, эта функция не то, что вы ищете. Я попытался бы повторить символ (убедитесь, что вы используете UTF-8 в качестве кодировки для соединения), скопируйте его и вставьте его в http://unicodelookup.com/, чтобы увидеть, что это за символ.

1 голос
/ 10 ноября 2011

Вы можете попробовать запустить echo '0x' . bin2hex( $mystery_character ); и погуглить результат.

Найти его в MySQL:

SELECT col FROM table WHERE col LIKE CONCAT('%', CHAR(0xc2a0), '%')

Замена на обычный пробел:

UPDATE table SET col = REPLACE(col, CHAR(0xc2a0), ' ')

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