Использование символа юникода u201c
Я новичок в python, и у меня проблемы с пониманием unicode. Я использую Python 3.4. Я потратил целый день, пытаясь понять это, прочитав об Unicode, включая http://www.fileformat.info/info/unicode/char/201C/index.htm и http://python-notes.curiousefficiency.org /en/latest/python3/text_file_processing.html
Мне нужно ссылаться на специальные кавычки, потому что они используются в тексте, который я анализирую. Я проверил, что командное окно W7 может читать и писать два специальных символа кавычек. Чтобы все было просто, я написал сценарий с одной строкой:
print ('“') # that's the special quote mark in between normal single quotes
и получить этот результат:
Traceback (most recent call last): File "C:\Users\David\Documents\Python34\Scripts\wordCount3.py", line 1, in <module> print ('\u201c') File "C:\Python34\lib\encodings\cp437.py", line 19, in encode return codecs.charmap_encode(input,self.errors,encoding_map)[0] UnicodeEncodeError: 'charmap' codec can't encode character '\u201c' in position 0: character maps to <undefined>
Итак, как мне написать что-то, чтобы ссылаться на эти два символа u201C
и u201D
?
Является ли это правильным выбором кодировки в открытом заявлении файла?
with open(fileIn, mode='r', encoding='utf-8', errors='replace') as f:
- Python3: конвертировать Latin-1 в UTF-8
- python url decode% E3
- Как закодировать словарь python?
- Кодер для строки – Python
- СинтаксисError символа не-ASCII
Причина в том, что в 3.x Python Вы не можете просто смешивать строки Unicode с байтовыми строками. Возможно, вы прочитали руководства, касающиеся Python 2.x, где такие вещи возможны, если bytestring содержит конвертируемые символы.
print('\u201c', '\u201d')
отлично работает для меня, поэтому единственная причина в том, что вы используете неправильную кодировку для исходного файла или терминала.
Кроме того, вы можете явно указать python на кодовую страницу, которую вы используете, выбирая следующую строку ontop вашего источника:
# -*- coding: utf-8 -*-
Добавлено: кажется, что вы работаете на компьютере с Windows, если вы можете изменить кодовую страницу консоли на utf-8, запустив
chcp 65001
прежде чем вы запустите свой интерпретатор python. Эти изменения будут временными, и если вы хотите перманентный, запустите следующий .reg-файл:
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Console] "CodePage"=dword:fde9
- Использование Eclipse для запуска / отладки python, когда исходные файлы закодированы в Latin-1 (= ISO-8859-1)
- Разница в выходе после чтения файлов, сохраненных в разных вариантах кодирования в python
- DBF – кодировка cp1250
- Исправлена ошибка кодирования китайского символа BeautifulSoup
- Проблема с кодировкой Python. Не удается открыть url, содержащий кириллические символы
- ascii codec can not decode byte 0xe9
- ElementTree и unicode
- Этот символ – ㎜ – вызывает UnicodeEncodeError
- Python получает код символа в разных кодировках?