Изменения

Перейти к: навигация, поиск

Представление символов, таблицы кодировок

1173 байта добавлено, 16:39, 5 января 2014
Добавил пример на python и hex-дамп
BOM также используется для текста обозначенного как UTF-32. Аналогично UTF-16 существует два варианта четырёхбайтной кодировки — UTF-32BE и UTF-32LE.К сожалению, этот способ не позволяет надёжно различать UTF-16LE и UTF-32LE, поскольку символ U+0000 допускается Юникодом
==Примеры==Если записать строку 'hello мир' в файл exampleBOM, а затем сделать его hex-дамп, то можно убедиться в том, что разные символы кодируются разным количеством байт. Например, английские буквы,пробел, знаки препинания и пр. кодируются одним байтом, а русские буквы - двумя===Код на python===<pre>#!/usr/bin/env python#coding:utf-8import codecsf = open('exampleBOM','w')b = u'hello мир'f.write(codecs.BOM_UTF8)f.write(b.encode('utf-8'))f.close()</pre>===hex-дамп файла exampleBOM==={|class = "wikitable" border = "1" style="text-align:center" |Символ |colspan="3" |BOM |h||e||l||l||o |Пробел |colspan="2" |м |colspan="2" |и |colspan="2" |р |- |Код в UNICODE |EF |BB |BF |68||65||6C||6C||6F |20||D0||BC||D0||B8||D1||80 |- |Код в UTF-8 |11101111||10111011||10111111 |01101000||01100101||01101100||01101100||01101111 |00100000||11010000||10111100||11010000||10111000||11010001||10000000 |}
== Ссылки ==
* [http://ru.wikipedia.org/wiki/ASCII Wikipedia: таблица ASCII]
25
правок

Навигация