Как избавиться от используя php - PullRequest
2 голосов
/ 14 мая 2011

Я вытаскиваю комментарии из базы данных, и это, �, появляется ... как мне от этого избавиться?Это из-за того, что находится в базе данных или как я это показываю, я пытался использовать htmlspecialchars, но не работает.

Пожалуйста, помогите

Ответы [ 7 ]

1 голос
/ 14 мая 2011

Проблема заключается в кодировке символов.Если персонаж хорошо отображается в базе данных, но не на странице.Ваша страница должна быть настроена на ту же кодировку символов, что и база данных.И наоборот, если ваша страница, которая публикует в кодировку символов базы данных, не совпадает, ну, это получается странно.

Обычно я устанавливаю кодировку символов UTF-8 для любого типа полей публикации, таких какКомментарии / Сообщения.В большинстве баз данных MySQL по умолчанию используется латинская кодировка.Поэтому вам нужно изменить это: http://yoonkit.blogspot.com/2006/03/mysql-charset-from-latin1-to-utf8.html

HTML-часть может быть сделана с тегом META: <META http-equiv="Content-Type" content="text/html; charset=UTF-8">

или с PHP: header('Content-type: text/html; charset=utf-8'); (необходимо разместитьперед любым выходом.)

Надеюсь, это заставит вас перекатиться.

1 голос
/ 14 мая 2011

Это происходит, когда у вас есть символ, который ваш шрифт не знает, как отобразить.Он отображается по-разному в каждой программе, многие программы Windows отображают его в виде рамки, Firefox показывает его в виде вопросительного знака в ромбах, другие программы просто используют простой знак вопроса.Таким образом, вы можете использовать более новую систему отображения, установить отсутствующий шрифт (например, если это азиатские символы) или посмотреть, если это один или два символа, которые делают это, и просто заменить их на что-то видимое.

1 голос
/ 14 мая 2011

Возможно, проблема в том, как вы храните информацию в базе данных.Если кодировка, которую вы использовали, не принимала ударения (à, ñ, î, ç ...), то она хранит их, используя странные символы.То же самое происходит с другими языковыми символами .Вероятно, нет решения для того, что уже находится в базе данных, но вы все равно можете сохранить следующие вставки, изменив тип кодировки в mysql.

Cheers

0 голосов
/ 14 мая 2011

Вы передаете свою кодировку в mysql_set_charset () с помощью mysql_connect () ???

0 голосов
/ 14 мая 2011

Как уже говорили другие, проверьте кодировку вашей базы данных.Вы можете попробовать использовать utf8_encode() или iconv() для преобразования вашей кодировки символов.

0 голосов
/ 14 мая 2011

Убедитесь, что ваша база данных UTF-8 (если это не решит проблему, убедитесь, что вы указали свой набор символов при подключении к базе данных).

Вы также можете кодировать / декодировать перед вводом данных вваша база данных.

Я бы предложил использовать htmlspecialchars () для кодирования и htmlspecialchars_decode () для декодирования.

0 голосов
/ 14 мая 2011

Проверьте ваш код на наличие ошибок.Это все, что можно сказать, если учесть, что вы не дали нам абсолютно никакой информации о том, что вы делаете.

Обычно причиной этого являются проблемы с кодированием (вы конвертируете из целых чисел в символы?), Так что выисправьте это, проверив, правильно ли вы конвертируете вещи.

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