определенные символы utf не отображаются в браузерах и не работают на Python-скрипте - PullRequest
0 голосов
/ 26 июля 2010

Я сгенерировал SQL-скрипт из приложения C # в Windows 7. Записи имени имеют символы utf8. Это работает найти на машине Windows, где я использую скрипт Python для заполнения БД. Теперь тот же скрипт не работает на платформе Linux с жалобой на эти специальные символы.

Подобные вещи происходили, когда я генерировал XML-файл, содержащий символы utf, в Windows 7, но не отображался в браузерах (IE, Firefox.).

Раньше я создавал такие скрипты в Windows XP, и он везде работал идеально.

Ответы [ 2 ]

1 голос
/ 26 июля 2010

Пожалуйста, приведите небольшой пример скрипта с "utf8 символами" в "именах записей".Вы уверены, что они utf8, а не некоторые окна, кодирующие как `cp1252 '?В чем ты уверен?Попробуйте это в Python из командной строки:

... python -c "print repr(open('small_script.sql', 'rb').read())"

Интересная часть вывода - это где \xhh (где h - любая шестнадцатеричная цифра) для представления не-ASCII символов, например, \xc3\xa2 - этокодировка UTF-8 маленькой буквы a с акцентом на обтекатель.Покажите нам репрезентативный образец такого выхода.Также сообщите нам точные сообщения об ошибках, которые вы получаете из этого примера сценария.

Обновление: Похоже, что у вас есть данные, закодированные в cp1252 или аналогичные (Latin1 akaISO-8859-1 так же редко, как куриные зубы на Windows).Чтобы вставить это в UTF-8 с помощью Python, вы должны сделать fixed_data = data.decode('cp1252').encode('utf8');Я не могу помочь вам с C # - вы можете задать отдельный вопрос об этом.

0 голосов
/ 26 июля 2010

Если вы используете Python, убедитесь, что вы используете Unicode-строки .

Например:

s = "Hello world"          # Regular String
u = u"Hello Unicode world" # Unicdoe String

Редактировать:
Вот примерчтения из файла UTF-8 со связанного сайта:

import codecs
fileObj = codecs.open( "someFile", "r", "utf-8" )
u = fileObj.read() # Returns a Unicode string from the UTF-8 bytes in the file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...