Как получить правильную кодировку символов между mysql и filemaker - PullRequest
1 голос
/ 27 июля 2011

Я не уверен, что это проблема с php-, filemaker-, mysql- или odbc.

По соображениям безопасности поля ввода моей текущей веб-формы php преобразуют специальные символы в шестнадцатеричные коды (например: # становится ') Этот шестнадцатеричный код сохраняется в базе данных и также будет отображаться в Filemaker11 какшестнадцатеричный кодЭто не то, что я хочу.Как я могу убедиться, что специальный символ будет отображаться так, как и должно быть?

В противном случае (от создателя файла до дБ) преобразование при вставке специальных символов не будет выполнено.

Как я могу убедиться, что все будет согласованно?

С уважением, Jeroen

Ответы [ 3 ]

1 голос
/ 27 июля 2011

FileMaker просто показывает данные, хранящиеся в MySQL. Если вы откроете БД в таком инструменте, как PhpMyAdmin, вы должны увидеть, что varchar также содержит кодировку. Поскольку FMP смотрит на него просто как на текстовое поле, он показывает кодировку, которая была сохранена. Если вы хотите декодировать в FMP, вы можете показать поле calc в varchar, которое имеет пользовательскую функцию для декодирования текста. (но это не позволит обновлять данные ..) Вы также можете попробовать триггер при загрузке записи для декодирования данных в полях, чтобы вы могли правильно просматривать / редактировать.

1 голос
/ 29 июля 2011

Решено!Оказалось, что мне нужно было добавить дополнительную строку в мой PHP-скрипт.

после настройки соединения, php должен сообщить mysql, какой должна быть кодировка.Это можно сделать с помощью следующей строки:

$dbh->query("SET NAMES 'utf8'");

Спасибо за усилия, ребята!

0 голосов
/ 27 июля 2011

Это: ' тип кодирования не выполняется браузером автоматически.Что-то делает это.Обычно вы делаете это только на выводе , а не на входе.

Вы можете использовать html_entity_decode(), чтобы отменить его.Но я настоятельно рекомендую вам выяснить, почему это происходит в первую очередь.

...