Я пытаюсь записать в базу данных следующую строку:
эффект муара решетки при печати.
Символ 'é' вызывает у меня сильную головную боль.Я не могу использовать htmlentities
, потому что база данных является частью настольного приложения.Мой HTML-код - UTF-8.
Во время моей (5 дней и считая) попытки отладить эту проблему, я вставил эту же строку в базу данных с помощью приложения для настольного компьютера, которое, казалось, работало нормально, за исключением того, что оскорбительный символотображается как '?'- даже используя htmlentities
или utf8_encode
.
Это сообщения об ошибках, которые я получаю при попытке вставить строку:
Предупреждение : PDOStatement :: execute() [pdostatement.execute]: message: Незакрытая кавычка перед строкой символов 'решетка динамика'.(уровень серьезности 15)
Предупреждение : PDOStatement :: execute () [pdostatement.execute]: общая ошибка SQL Server: проверка сообщений от SQL Server (уровень 15)
Предупреждение : PDOStatement :: execute () [pdostatement.execute]: сообщение: строка 1: неверный синтаксис рядом с «муар решетки динамика».(уровень серьезности 15)
Пожалуйста, помогите!
Обновление (2011-01-18)
Видимо, кодировка символов базы данных SQL_Latin1_General_CP1_CI_AS
.Является ли это SQL Server эквивалентом ISO-8859-1?Разве ISO-8859-1 не является кодировкой символов по умолчанию PHP по умолчанию?
Обновление 2 (2011-01-18)
Так близко! Включаяcharset=UTF-8
в строке DSN позволил мне вставить символ 'é', и он правильно отображается в настольном приложении.Это все еще отображается как «?»на веб-странице, хотя я использую $text_block = htmlentities( $text_block, ENT_NOQUOTES, 'UTF-8' );
в функции предварительного форматирования.