2011-12-09 3 views
1

Я сохраняю ответы геокодирования google в моей базе данных.как хранить знаки акцента над символами в моей базе данных

Один такой ответ имеет знак акцента над o. Город Ринкон. (Я бы поставил знак ударения здесь, чтобы показать вам, но я не знаю, как.)

Когда ответ хранится в моей базе данных MySQL это выглядит следующим образом: Rincón

Я понимаю, что это имеет отношение к делать с Collation, но я нервничаю из-за внесения изменений в базу данных, потому что у меня так много данных. В настоящее время для этого поля используется команда utf8_general_ci.

Может ли кто-нибудь посоветовать: 1) Является utf8_general_ci правильной сортировкой. 2) Нужно ли мне как-то указать эту сортировку в моем запросе ajax?

Спасибо ....

+0

Какой язык программирования вы используете? Например, если это PHP, вы передаете mb_convert_encoding свои данные перед хранением в DB – marcocamejo

+0

Я использую PHP. Какие аргументы я хотел бы использовать с mb_convert_encoding? – user418775

ответ

2

UTF-8 (в целом) «безопасный» кодирование для любого набора символов в мире. (Не всегда наиболее эффективны, и есть некоторые аргументы, которые необходимо сделать, чтобы Unicode представлял сценарии CJK с его «унифицированной han» моделью, но двигался дальше ...)

Однако, скорее всего, ваша программа интерфейса) не переводят в/из UTF-8 должным образом. Например, ó => ³ выглядит как данные UTF-8 (где один символ может быть разбросан по разному количеству байтов) представляется вам с использованием однобайтовой европейской кодировки, такой как ISO-8859-15 или MS- CP-1451 или аналогичный.

Вы, , вероятно,, сохраняя данные правильно, но loading Неверно указан. Если вы только с помощью программы mysql терминала или подобное, убедитесь, что терминал настроен на использование UTF-8 (в системе Unix/Linux, locale следует, вероятно, заканчивающимся в .utf8, например, шахта LANG=en_US.utf8)

Если вы извлекаете данные с помощью инструмента GUI или аналогичного, проверьте его панель настроек/настроек для набора символов.

Если вы возвращаете неверно переведенных символов в приложение, которое вы написали, ознакомьтесь с инструментами вашего языка для настройки языка. (Возможно, INSERT процедуры имеет это право, но SELECT процедуры есть это не так?)

И, если это направляется в Интернет, убедитесь, что ваши файлы (XML | | HTML XHTML) были charset=utf8 объявлены в подходящее место (места), или перевести с UTF-8 на набор символов вашего документа (если возможно), используя что-то вроде iconv при вставке текста из базы данных. (Большинство наборов символов, отличных от Unicode, могут представлять собой только подмножество Unicode, например, набор ISO-8859-15 выполняет достойную работу по изучению европейских языков, но не поддерживает кириллические, арабские или CJK системы записи, поэтому возможно, не перевести символ.) В Perl вы можете использовать аргументы pass для open или использовать binmode для настройки прозрачного набора уровней набора символов в потоке «filehandle».

+0

, когда я использую предупреждение javascript для отображения возвращаемого значения геокода, я вижу «Rincón, PR, 00602». Я также вижу это же значение, записанное в div в моем веб-приложении.Затем, когда я перезагружаю веб-приложение (которое заставляет веб-приложение извлекать данные из моей базы данных), оно отображается как Rincón, PR, 00602. Когда я использую phpMyAdmin для просмотра сохраненного значения, я также вижу Rincón, PR, 00602. Делает это информационная помощь? – user418775

+0

Проверьте содержимое содержимого документа (например, 'text/html; charset = utf8') в заголовках HTTP или HTML; (HTTP 'Content-Type:' или HTML 'meta http-equiv'' Content-Type'); если это уже UTF8, вам может потребоваться убедиться, что локали, выполняемые вашим PHP-скриптом, установлены в UTF8 и/или используют 'iconv' в вашем скрипте для перевода кодировки символов. К сожалению, я не являюсь пользователем (или фанатом :-() PHP, поэтому я не уверен на 100%, где его искать. Но он может быть поврежден, когда вы читаете его из '$ _POST' или так далее. – BRFennPocock

+0

По http://stackoverflow.com/questions/332781/phpmyadmin-displays-japanese-characters-as-a-bunch-of-question-marks-even-if- вы можете попробовать 'mysqli_set_charset ($ mysqli, 'utf8'); 'или' $ mysqli-> set_charset ("utf8"); ' – BRFennPocock

Смежные вопросы