2017-01-21 31 views
-1

Я пытаюсь напечатать чистую шахматную доску в python 2.7, которая использует уникальные символы, такие как ♟.Как я могу напечатать charaters как ♟ в python

Я попытался просто заменить значение в строке ("g".replace(g, ♟)), но он был изменен на '\xe2\x80\xa6'. Если я помещаю символ в онлайн-конвертер ASCII, он возвращает «226 153 159»

+2

Зачем вам помещать utf-8 в преобразователь ascii? –

+0

Я просто хотел посмотреть, что он действительно выдаст. Возможно, что-то полезное, но я думаю, что нет. – DSchana

+0

Это не символ ASCII, это символ UTF-8. – Natecat

ответ

2

является символом юникода. В python 2 str содержит строки ascii или двоичные данные, а unicode содержит строки Unicode. Когда вы делаете "♟", вы получаете двоичную кодированную версию строки юникода. То, что эта кодировка зависит от редактора/консоли, которую вы использовали для его ввода. Его общий (и, как мне кажется, предпочтителен) использовать UTF-8 для кодирования строк, но вы можете обнаружить, что редакторы Windows предпочитают строки младшего порядка UTF-16.

В любом случае, вы хотите как можно больше написать свои строки как unicode. Вы можете сделать несколько сочетаний и совпадений между str и unicode, но убедитесь, что все, что находится за пределами набора ASCII-кода, является unicode с самого начала.

Python может взять подсказку в начале файла. Итак, если вы используете редактор UTF-8, вы можете сделать

[email protected]/usr/bin/env python 
# -*- coding: utf-8 -*- 

chess_piece = u"♟" 
print u"g".replace(u"g", chess_piece) 

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

  • Нет связанных вопросов^_^