воскресенье, 30 декабря 2012 г.

Кодировки в исходных текстах сценариев Python

  Для представления строк в исходных текстах сценариев Python по умолчанию  использует кодировку UTF-8, однако имеется возможность указать любую другую кодировку, включив комментарий с названием требуемой кодировки.

  Данный комментарий должен находиться в первой или во второй строке и должен иметь следующий вид:


# -*- coding: ascii -*-
import sys
 
.....................
 
Или так: 
 
#!/usr/bin/env python
# -*- coding: latin-1 -*-
# ==============
#   Script ...
# ==============
import sys 

.....................

Интерпретатор будет распозновать строки, представленные в указанной кодировке.
 
  Вы можете редактировать файл сценария в текстовом редакторе, способном принимать 
и корректно отображать национальные символы, не входящие в набор ASCII, 
а интерпретатор будет корректно декодировать их в строковые литералы.
 
 Когда UNIX программа запускается в консоли, она читает первые два байта.
Если это последовательность ASCII-символов #!, командная оболочка предполагает, 
что файл должен выполняться интерпретатором а первая строка определяет какой 
интерпретатор должен использоваться.
 
 Данная строка называется shebang (выполняется командной оболочкой).
 
Строка shebang обычно записывается в одной из двух форм:
 
#!/usr/bin/python3
 
или
 
#!/usr/bin/env python3
 
 В первом случае она определяет используемый интерпретатор.
 
 Вторая форма может потребоваться для программ на языке Python, запускаемых
веб-сервером, будет выбран первый интерпретатор python3, найденный в текущем 
окружении.
 Эта форма допускает что интерпретатор Python3 может находиться не в каталоге 
/usr/bin, а например в /usr/local/bin или $HOME)
 
 В ОС Windows строка shebang не требуется (хотя и не мешает).