2012-02-20 3 views
0

Я работаю в программе Python с Javascript и DB. У меня были некоторые проблемы с управлением письменными акцентами (á, é, í, ó, ú). Сначала моя программа отображает некоторые текстовые входы, чтобы пользователь записывал информацию. Когда пользователь нажимает кнопку «ПРИНЯТЬ», javascript берет эту информацию и отправляет ее в другую программу python, которая будет сохранять эту информацию в базе данных. В следующий раз, когда пользователь войдет, информация, сохраненная в базе данных, будет отображаться вместо текстовых входов.Представляя акценты в строках

Моя проблема в том, что на этой информации имеется знак акцента. Сначала я, хотя это была проблема с javascript, поэтому я начинаю работать над заменой функций. Затем я увидел, что информация была сохранена в базе данных с акцентом, поэтому проблема связана не с функцией javascript, а с базой данных.

Информация взята из базы данных, и она отображает акцентные знаки очень хорошо. Затем javascript берет это значение, и если я поставлю предупреждение с этим значением, он очень хорошо отображает акцент. Этот javascript отправляет это значение по URL-адресу с AJAX в другую программу python. Этот питон получает это значение, но при его печати он изменяется. Акцентная метка больше не отображается, а немного квадратная. Я получаю значение с этим кодом (я использую это много раз):

form = cgi.FieldStorage() 
area = form.getfirst("area") 

Так я начал дегустацию снова питон функции замены, чтобы изменить этот символ знак apropiate акцента. Я пытался что-то вроде: area.replace("\u00e9","é") для (é). Но это не работает.

У меня также есть это в моих программах: # -*- coding: iso-8859-1 -*-, который работает для специальных персонажей.

Мне нужно выяснить, как питон представляет собой акценты, поэтому я могу их заменить.

+2

Я бы порекомендовал использовать любую декларацию 'coding', кроме utf-8. – Daenyth

+4

[Абсолютный минимум Каждый разработчик программного обеспечения Абсолютно, положительно должен знать о Unicode и наборах символов (без оправданий!)] (Http://www.joelonsoftware.com/articles/Unicode.html) – georg

+0

@ Даенит, какой? – mauguerra

ответ

3

Вам необходимо выполнить резервное копирование здесь.

Установите кодировку utf-8 (# -*- coding: utf-8 -*-) и используйте редактор, который работает с unicode.

Объявите свои константы и, как правило, используйте строки unicode, такие как u'hélas'.

Как будто по волшебству акценты будут работать (до тех пор, пока ваша база данных правильно обрабатывает Юникод, убедитесь, что это так).

+0

Но у меня уже есть кодировка utf-8 (# - * - кодирование: utf-8 - * -). мне нужно что-то изменить? – mauguerra

+1

@mauguerra: В вашем вопросе вы говорите, что у вас установлена ​​кодировка iso-8859-1. utf-8 - это путь, но убедитесь, что ваш редактор работает в режиме utf-8. – Marcin

+0

Я использую редактор, который работает в режиме utf-8. Вы знаете, что еще может быть? Большое спасибо – mauguerra

1

Если ваши данные в базе данных одобрены, но они выглядят скремблированными в программу python, может возникнуть проблема с настройкой соединения с базой данных. Я бы расследовал это, прежде чем перестраивать рабочую среду. (Но читайте эту ссылку в Юникоде).

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