Кодировка ansi 1251: Что за кодировка ANSI в Notepad++

Содержание

Как проверить кодировку в текстовом файле? / Общая / SocialKit

Программный комплекс SocialKit корректно работает с кириллицей в текстовых файлах, кодировка которых соответствует стандарту Windows-1251 (кратко может быть записано как CP1251 или ANSI). В этой связи в задачах, поддерживающих указание внешнего файла с перечнем комментариев, сообщений, описаний и прочей информации, которая может содержать кириллицу, нужно указывать текстовые файлы, где русский текст задан в кодировке по стандарту Windows-1251 или же просто ANSI, или CP1251 - всё это, по сути, одно и то же.

Учитывая, что многие инструменты по работе с текстом не отображают, в какой именно кодировке задан текст в текстовом файле и/или не поддерживают преобразование кодировок, то у новичков часто возникает вопрос о том, как именно привести кодировку текстового файла с русским текстом к понятному для SocialKit формату CP1251.

Следует сразу отметить, что большинство текстовых редакторов для ОС Windows (например, встроенный Блокнот и Wordpad) по умолчанию создают текстовые файлы именно с кодировкой по стандарту Windows-1251. Однако, эта кодировка по умолчанию может быть изменена в следствие тех или иных действий.

Если вы не уверены в том, в какой именно кодировке задан текст, то проще всего этот текст пересохранить через стандартный Блокнот Windows. При пересохранении Блокнот также покажет, в каком формате текст сейчас.

Опишем эту простую процедуру по шагам.

1. Открыть искомый текстовый файл в Блокноте Windows и выбрать пункт меню "Файл" -> "Сохранить как...".

Пример текстового файла, в котором русский текст задан в формате UTF, но это не очевидно при открытии.

2. В открывшемся диалоговом окне вы сразу видите, в какой кодировке был сохранён текст в текстовом файле.

Диалоговое окно пересохранения текстового файла, в котором можно сразу изменить кодировку.

Как видно, в примере текст в текстовом файле был ранее сохранён в кодировке UTF-8. Для изменения кодировке достаточно выбрать в выпадающем списке кодировку ANSI и нажать кнопку "Сохранить".

При этом зрительно для вас ничего не изменится, но многое изменится для программы и алгоритмов, занимающихся обработкой текста в процессе отправки. Корректно Instagram'у будет отправлен только ANSI-текст.

ANSI и Unicode — Основы программирования

Windows поддерживает две кодировки: ANSI и Unicode. В кодировке ANSI (American National Standard Institute) каждый символ кодируется однобайтным кодом. Коды от 0 до 127 совпадают с кодами ASCII, коды от 128 до 255 могут означать разные символы различных языков в зависимости от выбранной кодовой страницы. Кодовые страницы позволяют уместить многочисленные символы различных языков в однобайтный код, но при этом можно работать только с одной кодовой страницей, т.е. с одним языком. Неверно выбранная кодовая страница приводит к появлению непонятных символов (в Интернете их обычно называют «кракозябрами») вместо осмысленного текста.


В кодировке Unicode используется 2 байта на символ, что даёт возможность закодировать 65 536 символов. Этого хватает для символов латиницы и кириллицы, греческого алфавита, китайских иероглифов, арабских и еврейских букв, а также многочисленных дополнительных (финансовых, математических и т. п.) символов. Кодовых страниц в Unicode нет.
Примечание
Кодовая страница русского языка в ANSI имеет номер 1251. Кодировка символов в ней отличается от принятой в DOS так называемой альтернативной кодировки. В целях совместимости для DOS-программ, а также для консольных приложений Windows использует альтернативную кодировку. Именно поэтому при выводе русского текста в консольных приложениях получаются те самые «кракозябры». Чтобы избежать этого, следует перекодировать символы из кодировки ANSI в DOS при выводе, и наоборот — при вводе. Это можно сделать с помощью функций CharToOem и OemToChar.

Windows NT/2000/XP поддерживает ANSI и Unicode в полном объеме. Это значит, что любая функция, работающая со строками, представлена в двух вариантах: для ANSI и для Unicode. Windows 9x/МЕ в полном объеме поддерживает только ANSI. Unicode-варианты в этих системах есть у относительно небольшого числа функций. Каждая страница MSDN, посвященная функции, работающей со строками (или со структурами, содержащими строки), в нижней части содержит надпись, показывающую, реализован ли Unicode-вариант этой функции только для NT/2000/XP или для всех платформ.
Примечание
В качестве примера рассмотрим функции вывода текста на экран. Unicode-версию на всех платформах имеют только две из них TextOut и ExtTextOut. Функции DrawText и DrawTextEx имеют Unicode-варианты только в Windows NT/2000/XP. Если же смотреть функции для работы с окнами, то среди них нет ни одной, которая имела бы Unicode-вариант в Windows 9х/МЕ. Следует отметить, что с относительно недавнего времени Microsoft предоставляет расширение для Windows 9x/МЕ которое позволяет добавить полную поддержку Unicode в эти системы. Это расширение называется MSLU (Microsoft Layer for Unicode), его можно скачать с официального сайта Microsoft.
Рассмотрим, как сосуществуют два варианта на примере функции RegisterWindowMessage. Согласно справке, она экспортируется библиотекой user32.dll. Однако если посмотреть список функций, экспортируемых этой библиотекой (это можно сделать, например, при помощи утилиты TDump.exe, входящей в состав Delphi), то там этой функции не будет, зато будут функции RegisterWindowMessageA и RegisterWindowMessageW. Первая из них — это ANSI-вариант функции, вторая — Unicode-вариант (буква W означает Wide — широкий; символы кодировки Unicode часто называются широкими из-за того, что на один символ приходится не один, а два байта).
Сначала разберемся с тем, как используются два варианта одной функции в Microsoft Visual C++. В стандартных заголовочных файлах учитывается наличие макроопределения UNICODE. Есть два символьных типа — CHAR для ANSI и WCHAR для Unicode. Если макрос UNICODE определен, тип TCHAR соответствует типу WCHAR, если не определен — типу CHAR (после этого производные от TCHAR типы, такие как LPCTSTR автоматически начинают соответствовать кодировке, определяемой наличием или отсутствием определения UNICODE). В заголовочных файлах импортируются оба варианта функции, а также определяется макрос RegisterWindowMessage. Его смысл также зависит от макроса UNICODE: если он определен, RegisterWindowMessage эквивалентен RegisterWindowMessageW, если не определен — RegisterWindowMessageA. Все функции, поддерживающие два варианта кодировки, импортируются точно так же. Таким образом, вставляя или убирая макроопределение UNICODE, можно, не меняя ни единого символа в программе, компилировать ее ANSI- или Unicode-версию.
Разработчики Delphi не стали полностью копировать этот механизм, видимо, этому помешала существующая в Delphi раздельная компиляция модулей, из-за которой невозможно определением одного символа заставить все модули перекомпилироваться (тем более что часть из них может не иметь исходных кодов). Поэтому в Delphi нет типа, аналогичного TCHAR.
Рассмотрим, как та же функция RegisterWindowMessage импортируется модулем Windows (листинг 1.19).
Листинг 1.19. Импорт функции RegisterWindowMessage
interface
...
function RegisterWindowMessage (lpString: PChar): UINT; stdcall;
function RegisterWindowMessageA (lpString: PAnsiChar): UINT;
stdcall; function RegisterWindowMessageW (lpString: PWideChar): UINT; stdcall;
...
implementation
...
function RegisterWindowMessage;
external user32 name 'RegisterWindowMessageA';
function RegisterWindowMessageA;
external user32 name 'RegisterWindowMessageA';
function RegisterWindowMessageW;
external user32 name 'RegisterWindowMessageW';
Видно, что функция RegisterWindowMessageA импортируется дважды: один раз под своим настоящим именем, а второй раз — под именем RegisterWindowMessage. Любое из этих имен подходит для вызова ANSI-варианта этой функции (напоминаю, что типы PChar и PAnsiChar эквивалентны). Чтобы вызвать Unicode-вариант функции, потребуется функция RegisterWindowMessageW.
Структуры, содержащие строковые данные, также имеют ANSI- и Unicode-вариант. Например, структура WNDCLASS в модуле Windows представлена типами TWndClassA (с синонимами WNDCLASSA и tagWNDCLASSA) и TWndClassW (с синонимами WNDCLASSW и tagWHDCLASSW). Тип TWndClass (и его синонимы WNDCLASS и tagWNDCLASS) эквивалентен типу TWndClassA. Соответственно, при вызове функций RegisterClassA и RegisterClassExA используется тип TWndClassA, при вызове RegisterClassW и RegisterClassExW — тип TWndClassW.

Что такое кодировка ANSI и с чем ее едят? — RUUD

Прежде чем отвечать на вопрос о том, что же такое кодировка ANSI Windows, ответим сначала на другой вопрос: "Что же такое кодировка вообще?"

У каждого компьютера, в каждой системе используется определенный набор символов, зависящий от языка, используемого пользователем, от его профессиональных компетенций и личных предпочтений.

Общее определение кодировки

Так, в русском языке используется 33 символа для обозначения букв, в английском – 26. Также используется 10 цифр для счета (0; 1; 2; 3; 4; 5; 6; 7; 8; 9) и некоторые специальные символы, в том числе запятая, минус, пробел, точка, процент и так далее.

You will be interested:How dangerous is the new coronavirus?

Каждому из этих символов при помощи кодовой таблицы присваивается порядковый номер. К примеру, букве "A" может быть присвоен номер 1; "Z" - 26 и так далее.

Собственно, номер, представляющий символ как целое число, считается кодом символа, а кодировка - это, соответственно, набор символов в такой таблице.

Богатство разнообразия кодовых таблиц

На данный момент существует довольно большое количество кодировок и кодовых таблиц, используемых разными специалистами: это и ASCII, разработанная в 1963 году в Америке, и Windows-1251, совсем недавно еще бывшая популярной благодаря Microsoft, KOI8-R и Guobiao - и многие, многие другие, причем процесс их появления и отмирания происходит и по сей день.

Среди этого огромного списка совершенно особо держится так называемая кодировка ANSI.

Дело в том, что в свое время компания Microsoft создала целый набор кодовых страниц:

Windows - 874 Тайский Windows-1250 Центральноевропейский Windows-1251 Кириллический (все символы русского языка + символы близких языков) Windows-1252 Западноевропейский Windows-1253 Греческий Windows-1254 Турецкий Windows-1255 Еврейский Windows-1256 Арабский Windows-1257 Балтийский Windows-1258 Вьетнамский

Все они получили общее название таблицы кодировки ANSI, или кодовой страницы ANSI.

Интересный факт: одной из первых кодовых таблиц стала ASCII, в 1963 году созданная American National Standards Institute (Американским национальным институтом стандартов), сокращенно называвшимся именно ANSI.

Помимо всего прочего, эта кодировка содержит и непечатные символы, так называемые "Управляющие последовательности", или ESC, уникальные для всех таблиц символов, зачастую несовместимые между собой. При умелом использовании, однако, они позволяли скрывать и восстанавливать курсор, переводить его с одного положения в тексте на другое, устанавливать табуляцию, стирать часть окна терминала, в котором велась работа, изменять форматирование текста на экране и менять цвет (или даже рисовать и подавать звуковые сигналы!). В 1976 году, кстати, это было довольно неплохим подспорьем для программистов. Кстати, терминал - это устройство, требующееся для ввода и вывода информации. В те далекие времена он представлял собой монитор и клавиатуру, подсоединенные к ЭВМ (электронной вычислительной машине).

Некорректное отображение символов

К сожалению, в дальнейшем подобная система вызвала многочисленные сбои в системах, выводя вместо желаемых стихов, лент новостей или описаний любимых компьютерных игр так называемые кракозябры

- бессмысленные, нечитаемые наборы символов. Появление этих вездесущих ошибок было вызвано всего лишь попыткой отображать символы, закодированные в одной кодовой таблице, при помощи другой.

Чаще всего с последствиями неверного чтения этой кодировки мы сталкиваемся в Интернете до сих пор, когда наш браузер по какой-то причине не может достаточно точно определить, какая именно из Windows-**** кодировок используется в данный момент, из-за указания веб-мастером общей кодировки ANSI либо изначально неверной кодировки, к примеру, 1252 вместо 1521. Ниже представлена точная таблица кодировок.

Кириллическая таблица ANSI-кодировок, Windows-1251

№ П/п.

HEX

СИМВОЛ

№ П/п.

HEX

СИМВОЛ

№ П/п.

179

B3

і

009

09

TAB

095

5F

_

180

B4

ґ

010

0A

LF

096

60

`

181

B5

µ

011

0B

VT

097

61

a

182

B6

012

0C

FF

098

62

b

183

B7

·

013

0D

CR

099

63

c

184

B8

Е

014

0E

SO

100

64

d

185

B9

015

0F

SI

101

65

e

186

BA

Є

016

10

DLE

102

66

f

187

BB

»

017

11

DC1

103

67

g

188

BC

ј

018

12

DC2

104

68

h

189

BD

Ѕ

019

13

DC3

105

69

i

190

BE

Ѕ

020

14

DC4

106

6A

j

191

BF

Ї

021

15

NAK

107

6B

k

192

C0

А

022

16

SYN

108

6C

l

193

C1

Б

023

17

ETB

109

6D

m

194

C2

В

024

18

CAN

110

6E

n

195

C3

Г

025

19

EM

111

6F

o

196

C4

Д

026

1A

SUB

112

70

p

197

C5

Е

027

1B

ESC

113

71

q

198

C6

Ж

028

1C

FS

114

72

r

199

C7

З

029

1D

GS

115

73

s

200

C8

И

030

1E

RS

116

74

t

201

C9

Й

031

1F

US

117

75

u

202

CA

К

032

20

Пробел

118

76

v

203

CB

Л

033

21

!

119

77

w

204

CC

М

034

22

«

120

78

x

205

CD

Н

035

23

#

121

79

y

206

CE

О

036

24

$

122

7A

z

207

CF

П

037

25

%

123

7B

{

208

D0

Р

038

26

&

124

7C

|

209

D1

С

039

27

125

7D

}

210

D2

Т

040

28

(

126

7E

~

211

D3

У

041

29

)

127

7F

212

D4

Ф

042

2A

*

128

80

Ђ

213

D5

Х

043

2B

+

129

81

Ѓ

214

D6

Ц

044

2C

,

130

82

215

D7

Ч

045

2D

131

83

ѓ

216

D8

Ш

046

2E

.

132

84

217

D9

Щ

047

2F

/

133

85

218

DA

Ъ

048

30

0

134

86

219

DB

Ы

049

31

1

135

87

220

DC

Ь

050

32

2

136

88

221

DD

Э

051

33

3

137

89

222

DE

Ю

052

34

4

138

8A

Љ

223

DF

Я

053

35

5

139

8B

224

E0

а

054

36

6

140

8C

Њ

225

E1

б

055

37

7

141

8D

Ќ

226

E2

в

056

38

8

142

8E

Ћ

227

E3

г

057

39

9

143

8F

Џ

228

E4

д

058

3A

:

144

90

Ђ

229

E5

е

059

3B

;

145

91

230

E6

ж

060

3C

146

92

231

E7

з

061

3D

=

147

93

232

E8

и

062

3E

>

148

94

233

E9

й

063

3F

?

149

95

234

EA

к

064

40

@

150

96

235

EB

л

065

41

A

151

97

236

EC

м

066

42

B

152

98 ˜

237

ED

н

067

43

C

153

99

238

EE

о

068

44

D

154

9A

љ

239

EF

п

069

45

E

155

9B

240

F0

р

070

46

F

156

9C

њ

241

F1

с

071

47

G

157

9D

ќ

242

F2

т

072

48

H

158

9E

ћ

243

F3

у

073

49

I

159

9F

џ

244

F4

ф

074

4A

J

160

A0

245

F5

х

075

4B

K

161

A1

Ў

246

F6

ц

076

4C

L

162

A2

ў

247

F7

ч

077

4D

M

163

A3

Ј

248

F8

ш

078

4E

N

164

A4

¤

249

F9

щ

079

4F

O

165

A5

Ґ

250

FA

ъ

080

50

P

166

A6

¦

251

FB

ы

081

51

Q

167

A7

§

252

FC

ь

082

52

R

168

A8

Е

253

FD

э

083

53

S

169

A9

©

254

FE

ю

084

54

T

170

AA

Є

255

FF

я

085

55

U

Более того, в 1986 году ANSI была существенно расширена, благодаря Яну Э. Дэвису, написавшему пакет The Draw, позволяющий не просто использовать базовые, с нашей точки зрения, функции, но и полноценно (или почти полноценно) рисовать!

Подводя итоги

Таким образом, можно видеть, что кодировка ANSI, по сути, хоть и была довольно спорным решением, сохраняет свои позиции.

Со временем с легкой руки энтузиастов древний терминал ANSI перекочевал даже на телефоны!

Источник

Кодировка XML

Здравствуйте, уважаемые посетители сайта okITgo.ru! Продолжаем рассматривать язык разметки XML.

XML документы могут содержать символы, не входящие в ASCII, например норвежские, или французские.

Чтобы избежать ошибок, указывайте кодировку XML, или сохраняйте XML файлы в формате Уникод.


Ошибки Кодировки XML

При загрузке XML документа, Вы можете получить две различные ошибки, указывающие на проблемы с кодировкой:

Неправильный символ был найден в текстовом содержимом.

Вы получаете эту ошибку, если ваш XML содержит символы, не входящие в ASCII, и файл был сохранен как однобайтовый ANSI (или ASCII) без указания кодировки.

Однобайтовый XML файл с атрибутом кодировки.

Тот же однобайтовый XML файл без атрибута кодировки.

Переключение из текущей кодировки в указанную кодировку не поддерживается.

Вы получаете эту ошибку, если ваш XML файл был сохранен как двухбайтовый Уникод (или UTF-16) с указанной однобайтовой кодировкой (например, Windows-1251,
ISO-8859-1, UTF-8).

Вы также получаете эту ошибку, если ваш XML файл был сохранен как однобайтовый ANSI (или ASCII) с указанной двухбайтовой кодировкой (например, UTF-16).

Двухбайтовый XML файл без кодировки.

Тот же двухбайтовый XML файл с однобайтовой кодировкой.


Блокнот Windows

Блокнот Windows сохраняет файлы как однобайтовые ANSI (ASCII) по умолчанию.

Если Вы выберите "Сохранить как…", Вы можете указать двухбайтовый Уникод (UTF-16).

Сохраните XML файл ниже как Уникод (заметьте, что документ не содержит атрибута кодировки):

<?xml version="1.0"?>
<note>
<from>Света</from>
<to>Вася</to>
<message>Позвони мне завтра!</message>
</note>

Файл выше, note_encode_none_u.xml НЕ будет генерировать ошибку. Но если Вы укажете однобайтовую кодировку, то будет.

Кодировка (откройте файл), вызовет сообщение об ошибке:

<?xml version="1.0" encoding="windows-1251"?>

Следующая кодировка (откройте файл), вызовет сообщение об ошибке:

<?xml version="1.0" encoding="ISO-8859-5"?>

Следующая кодировка (откройте файл), вызовет сообщение об ошибке:

<?xml version="1.0" encoding="UTF-8"?>

Следующая кодировка (откройте файл), НЕ будет генерировать ошибку:

<?xml version="1.0" encoding="UTF-16"?>

Выводы

  • Всегда используйте атрибут кодировки XML
  • Используйте редактор, который поддерживает кодировки
  • Удостоверьтесь, что знаете, какую кодировку использует ваш редактор
  • Используйте ту же самую кодировку в атрибуте кодировки

Спасибо за внимание! До новых встреч на страницах сайта okITgo.ru.

Как сменить кодировку текстового файла с помощью Блокнота в Windows

Фишка кодировки текстовых фалов в том, что хранятся не сами буквы (символы), а ссылки на них в таблице кодировок. Если с латинским буквами, арабскими цифрами и основными символами типа точек, тире и запятых никаких проблем не возникает: во многих таблицах кодировок все эти буквы, цифры и символы находятся в одних и тех же ячейках, то с кириллицей всё сложно. Например, в разных кодировках буква Ы может находиться в ячейке 211, 114 и 69.

Именно поэтому на заре интернета чтобы посмотреть разные сайты с разными кодировками приходилось подбирать кодировку. (Но кто это помнит?) Сейчас кодировка страницы обычно прописана в заголовке страницы, что позволяет браузеру "автоматически" подбирать отображение символов на наших мониторах.

То есть сервер отдаёт не просто HTML-страничку, а указывает, что у неё кодировка Windows-1251. Браузер таким образом, считывая информацию о кодировке полученного файла, подставляет символы из указанной кодировки.

Но и это ещё не всё веселье. Например, если на сервере установлена операционная система из семейства *nix (с кодировкой по умолчанию UTF-8), а мы шлём файл из нашей любимой ОС Windows, где кодировка текстовых фалов по умолчанию стоит почему-то ANSI, то как вы думаете сервер будет работать с текстом, кодировка которой не совпадает с его? Правильно! Как-то будет работать! Но результат работы может быть непредсказуемым и удивительным. =)

Надеюсь, что мотивация для обращение необходимого внимания на кодировку достаточная и можно перейти к сути вопроса: "Как же, чёрт возьми, сохранить файл в нужной кодировке?!"

В этой статье речь пойдёт как раз о том, как сохранить текстовый файл с помощью программы Блокнот (Notepad) в Windows в нужной кодировке.

Для того, чтобы изменить кодировку текстового файла, конечно же сперва его нужно создать. А после того, как файл создан, нужно ещё суметь его открыть. Самый простой способ отрыть файл — это двойной клик левой кнопкой мыши по его иконке в проводнике:

Если до этого настройки Windows не менялись, то файлы с расширением .txt открываются в Блокноте. (Это ещё один способ, как отрыть Блокнот (Notepad).)

Чтобы поменять кодировку в открывшемся файле, нужно в меню «Файл» текстового редактора Блокнот выбрать пункт «Сохранить как...»:

Откроется диалоговое окно сохранения файла. Для смены кодировки, нужно выбрать из списка предлагаемых необходимый:

После того, как нужная кодировка выбрана, можно кликнуть на кнопку «Сохранить» или просто нажать Enter:

Так как мы не изменили имя файла, то будет перезаписан тот же самый файл. Поэтому возникает справедливый вопрос: «Файл с таким именем уже существует. Заменить?» Ну да, мы к этому и стремимся! Поменять кодировку у этого файла. Поэтому его нужно перезаписать с новой кодировкой. Соглашаемся:

Всё! Миссия по смене кодировки в текстовом файле выполнена! Файл сохранён с новой кодировкой. Можно закрыть текстовый редактор и устроить празднование этого решающего события! =D

Заберите ссылку на статью к себе, чтобы потом легко её найти 😉

Выберите, то, чем пользуетесь чаще всего:

Спасибо за внимание, оставайтесь на связи! Ниже ссылка на форум и обсуждение ; )

Статья - [CMD] Перевод кодировки текстовых файлов (через консольную утилиту win_iconv) | SafeZone

Конвертирование текстовых файлов с одной кодировки в другую с помощью win_iconv

win_iconv
Автор: Yukihiro Nakadaira
Версия: 0.0.6 (от 22.11.2012)
Это утилита с открытым исходным кодом: code.google

Синтаксис:

win_iconv [-c] [-s] [-f encoding] [-t encoding] [inputfile …]

Входная кодировка задаётся ключом -f, а выходная — ключом -t. Любая из этих кодировок по умолчанию равна локали системы. Все входные файлы читаются по очереди, если не задан параметр входного файла, то используется стандартный ввод, а конвертируемый текст выводится на стандартный вывод.

Когда задана опция -c, символы, которые не могут быть преобразованы просто выбрасываются. В противном случае при появлении подобной ошибки программа аварийно завершается.

Когда задана опция -s, сообщения об ошибках не выводятся.

Пример использования:

win_iconv -f UTF-16LE -t cp866 "UTFtext.txt" > "DOStext.txt"
Файл UTFtext.txt будет преобразован из кодировки UTF-16LE в OEM-866 и результат записан в файл DOStext.txt.

Ключ -l выводит список доступных кодировок.

Спойлер: Перечень всех доступных кодировок

CP65001
UTF8
UTF-8
CP1200
UTF16LE
UTF-16LE
UCS2LE
UCS-2LE
UCS-2-INTERNAL
CP1201
UTF16BE
UTF-16BE
UCS2BE
UCS-2BE
unicodeFFFE
CP12000
UTF32LE
UTF-32LE
UCS4LE
UCS-4LE
CP12001
UTF32BE
UTF-32BE
UCS4BE
UCS-4BE
UTF16
UTF-16
UCS2
UCS-2
UTF32
UTF-32
UCS-4
UCS4
ANSI_X3.4-1968
ANSI_X3.4-1986
ASCII
CP367
IBM367
ISO-IR-6
ISO646-US
ISO_646.IRV:1991
US
US-ASCII
CSASCII
CP819
IBM819
ISO-8859-1
ISO-IR-100
ISO8859-1
ISO_8859-1
ISO_8859-1:1987
L1
LATIN1
CSISOLATIN1
CP1250
MS-EE
WINDOWS-1250
CP1251
MS-CYRL
WINDOWS-1251
CP1252
MS-ANSI
WINDOWS-1252
CP1253
MS-GREEK
WINDOWS-1253
CP1254
MS-TURK
WINDOWS-1254
CP1255
MS-HEBR
WINDOWS-1255
CP1256
MS-ARAB
WINDOWS-1256
CP1257
WINBALTRIM
WINDOWS-1257
CP1258
WINDOWS-1258
850
CP850
IBM850
CSPC850MULTILINGUAL
862
CP862
IBM862
CSPC862LATINHEBREW
866
CP866
IBM866
CSIBM866
CP154
CYRILLIC-ASIAN
PT154
PTCP154
CSPTCP154
CP1133
IBM-CP1133
CP874
WINDOWS-874
CP51932
MS51932
WINDOWS-51932
EUC-JP
CP932
MS932
SHIFFT_JIS
SHIFFT_JIS-MS
SJIS
SJIS-MS
SJIS-OPEN
SJIS-WIN
WINDOWS-31J
WINDOWS-932
CSWINDOWS31J
CP50221
ISO-2022-JP
ISO-2022-JP-MS
ISO2022-JP
ISO2022-JP-MS
MS50221
WINDOWS-50221
CP936
GBK
MS936
WINDOWS-936
CP950
BIG5
BIG5HKSCS
BIG5-HKSCS
CP949
UHC
EUC-KR
CP1361
JOHAB
437
CP437
IBM437
CSPC8CODEPAGE437
CP737
CP775
IBM775
CSPC775BALTIC
852
CP852
IBM852
CSPCP852
CP853
855
CP855
IBM855
CSIBM855
857
CP857
IBM857
CSIBM857
CP858
860
CP860
IBM860
CSIBM860
861
CP-IS
CP861
IBM861
CSIBM861
863
CP863
IBM863
CSIBM863
CP864
IBM864
CSIBM864
865
CP865
IBM865
CSIBM865
869
CP-GR
CP869
IBM869
CSIBM869
CP1125
IBM037
IBM437
IBM500
ASMO-708
DOS-720
ibm737
ibm775
ibm850
ibm852
IBM855
ibm857
IBM00858
IBM860
ibm861
DOS-862
IBM863
IBM864
IBM865
cp866
ibm869
IBM870
windows-874
cp875
shift_jis
shift-jis
gb2312
ks_c_5601-1987
big5
big5hkscs
big5-hkscs
IBM1026
IBM01047
IBM01140
IBM01141
IBM01142
IBM01143
IBM01144
IBM01145
IBM01146
IBM01147
IBM01148
IBM01149
windows-1250
windows-1251
windows-1252
windows-1253
windows-1254
windows-1255
windows-1256
windows-1257
windows-1258
Johab
macintosh
x-mac-japanese
x-mac-chinesetrad
x-mac-korean
x-mac-arabic
x-mac-hebrew
x-mac-greek
x-mac-cyrillic
x-mac-chinesesimp
x-mac-romanian
x-mac-ukrainian
x-mac-thai
x-mac-ce
x-mac-icelandic
x-mac-turkish
x-mac-croatian
x-Chinese_CNS
x-cp20001
x_Chinese-Eten
x-cp20003
x-cp20004
x-cp20005
x-IA5
x-IA5-German
x-IA5-Swedish
x-IA5-Norwegian
us-ascii
x-cp20261
x-cp20269
IBM273
IBM277
IBM278
IBM280
IBM284
IBM285
IBM290
IBM297
IBM420
IBM423
IBM424
x-EBCDIC-KoreanExtended
IBM-Thai
koi8-r
IBM871
IBM880
IBM905
IBM00924
EUC-JP
x-cp20936
x-cp20949
cp1025
koi8-u
iso-8859-1
iso8859-1
iso_8859-1
iso_8859_1
iso-8859-2
iso8859-2
iso_8859-2
iso_8859_2
iso-8859-3
iso8859-3
iso_8859-3
iso_8859_3
iso-8859-4
iso8859-4
iso_8859-4
iso_8859_4
iso-8859-5
iso8859-5
iso_8859-5
iso_8859_5
iso-8859-6
iso8859-6
iso_8859-6
iso_8859_6
iso-8859-7
iso8859-7
iso_8859-7
iso_8859_7
iso-8859-8
iso8859-8
iso_8859-8
iso_8859_8
iso-8859-9
iso8859-9
iso_8859-9
iso_8859_9
iso-8859-13
iso8859-13
iso_8859-13
iso_8859_13
iso-8859-15
iso8859-15
iso_8859-15
iso_8859_15
x-Europa
iso-8859-8-i
iso8859-8-i
iso_8859-8-i
iso_8859_8-i
iso-2022-jp
csISO2022JP
iso-2022-jp
iso-2022-kr
iso2022-kr
x-cp50227
euc-jp
EUC-CN
euc-kr
hz-gb-2312
GB18030
x-iscii-de
x-iscii-be
x-iscii-ta
x-iscii-te
x-iscii-as
x-iscii-or
x-iscii-ka
x-iscii-ma
x-iscii-gu
x-iscii-pa

 

Что такое кодировка ANSI и с чем ее едят? Кодировка от алкоголя

Прежде чем отвечать на вопрос о том, что же такое кодировка ANSI Windows, ответим сначала на другой вопрос: "Что же такое кодировка вообще?"

У каждого компьютера, в каждой системе используется определенный набор символов, зависящий от языка, используемого пользователем, от его профессиональных компетенций и личных предпочтений.

Общее определение кодировки

Так, в русском языке используется 33 символа для обозначения букв, в английском - 26. Также используется 10 цифр для счета (0; 1; 2; 3; 4; 5; 6; 7; 8; 9) и некоторые специальные символы, минус, пробел, точка, процент и так далее.

Каждому из этих символов при помощи кодовой таблицы присваивается порядковый номер. К примеру, букве "A" может быть присвоен номер 1; "Z" - 26 и так далее.

Собственно, номер, представляющий символ как целое число, считается кодом символа, а кодировка - это, соответственно, набор символов в такой таблице.

Богатство разнообразия кодовых таблиц

На данный момент существует довольно большое количество кодировок и кодовых таблиц, используемых разными специалистами: это и ASCII, разработанная в 1963 году в Америке, и Windows-1251, совсем недавно еще бывшая популярной благодаря Microsoft, KOI8-R и Guobiao - и многие, многие другие, причем процесс их появления и отмирания происходит и по сей день.

Среди этого огромного списка совершенно особо держится так называемая кодировка ANSI.

Дело в том, что в свое время компания Microsoft создала целый набор кодовых страниц:

Все они получили общее название таблицы кодировки ANSI, или кодовой страницы ANSI.

Интересный факт: одной из первых кодовых таблиц стала ASCII, в 1963 году созданная American National Standards Institute (Американским национальным институтом стандартов), сокращенно называвшимся именно ANSI.

Помимо всего прочего, эта кодировка содержит и непечатные символы, так называемые "Управляющие последовательности", или ESC, уникальные для всех таблиц символов, зачастую несовместимые между собой. При умелом использовании, однако, они позволяли скрывать и восстанавливать курсор, переводить его с одного положения в тексте на другое, устанавливать табуляцию, стирать часть окна терминала, в котором велась работа, изменять форматирование текста на экране и менять цвет (или даже рисовать и подавать звуковые сигналы!). В 1976 году, кстати, это было довольно неплохим подспорьем для программистов. Кстати, терминал - это устройство, требующееся для ввода и вывода информации. В те далекие времена он представлял собой монитор и клавиатуру, подсоединенные к ЭВМ (электронной вычислительной машине).

Некорректное отображение символов

К сожалению, в дальнейшем подобная система вызвала многочисленные сбои в системах, выводя вместо желаемых стихов, лент новостей или описаний любимых компьютерных игр так называемые кракозябры - бессмысленные, нечитаемые наборы символов. Появление этих вездесущих ошибок было вызвано всего лишь попыткой отображать символы, закодированные в одной кодовой таблице, при помощи другой.

Чаще всего с последствиями неверного чтения этой кодировки мы сталкиваемся в Интернете до сих пор, когда наш браузер по какой-то причине не может достаточно точно определить, какая именно из Windows-**** кодировок используется в данный момент, из-за указания веб-мастером общей кодировки ANSI либо изначально неверной кодировки, к примеру, 1252 вместо 1521. Ниже представлена точная таблица кодировок.

Кириллическая таблица ANSI-кодировок, Windows-1251

Более того, в 1986 году ANSI была существенно расширена, благодаря Яну Э. Дэвису, написавшему пакет The Draw, позволяющий не просто использовать базовые, с нашей точки зрения, функции, но и полноценно (или почти полноценно) рисовать!

Подводя итоги

Таким образом, можно видеть, что кодировка ANSI, по сути, хоть и была довольно спорным решением, сохраняет свои позиции.

Со временем с легкой руки энтузиастов древний терминал ANSI перекочевал даже на телефоны!

Позже ASCII была расширена (изначально она не использовала все 8 бит), поэтому появилась возможность использовать уже не 128, а 256 (2 в 8 степени) различных символов, которые можно закодировать в одном байте информации.
Такое усовершенствование позволило добавлять в кодировку ASCII символы национальных языков разных стран, помимо уже существующей латиницы.
Вариантов расширенной кодировки ASCII существует очень много по причине того, что языков в мире тоже немало. Думаю, что многие из вас слышали о такой кодировке, как KOI8 (Код Обмена Информацией, 8 бит) — это тоже расширенная кодировка ASCII . KOI8 включала в себя цифры, буквы латинского и русского алфавита, а также знаки пунктуации, спецсимволы и псевдографику.

Кодировка ISO

Организация Международных стандартов (International Standards Organization) создала диапазон кодировок для различных алфавитов/языков.

Кодировки серии ISO 8859

Кодировка Описание
ISO 8859-1 (Latin-1) Расширенная латиница, включающая символы большинства западноевропейских языков (английский, датский, ирландский, исландский, испанский, итальянский, немецкий, норвежский, португальский, ретороманский, фарерский, шведский, шотландский (гэльский) и частично голландский, финский, французский), а также некоторых восточноевропейских (албанский) и африканских языков (африкаанс, суахили). В Latin-1 отсутствуют знак евро и заглавная буква Ÿ. Эта кодовая страница считается кодировкой по умолчанию для HTML-документов и сообщений электронной почты. Также этой кодовой странице соответствуют первые 256 символов Юникода.
ISO 8859-2 (Latin-2) Расширенная латиница, включающая символы центральноевропейских и восточноевропейских языков (боснийский, венгерский, польский, словацкий, словенский, хорватский, чешский). В Latin-2, как и в Latin-1, отсутствуют знак евро.
ISO 8859-3 (Latin-3) Расширенная латиница, включающая символы южноевропейских языков (мальтийский, турецкий и эсперанто).
ISO 8859-4 (Latin-4) Расширенная латиница, включающая символы североевропейских языков (гренландский, эстонский, латышский, литовский и саамские языки).
ISO 8859-5 (Latin/Cyrillic) Кириллица, включающая символы славянских языков (белорусский, болгарский, македонский, русский, сербский и частично украинский).
ISO 8859-6 (Latin/Arabic) Символы, используемые в арабском языке. Символы других языков с письмом на основе арабского не поддерживаются. Для корректного отображения текста в кодировке ISO 8859-6 требуется поддержка двунаправленного письма и контекстно-зависимых форм символов.
ISO 8859-7 (Latin/Greek) Символы современного греческого языка. Может использоваться также для записи древнегреческих текстов в монотонической орфографии.
ISO 8859-8 (Latin/Hebrew) Символы современного иврита. Используется в двух вариантах: с логическим порядком следования символов (требует поддержки двунаправленного письма) и с визуальным порядком следования символов.
ISO 8859-9 (Latin-5) Вариант Latin-1, в котором редко используемые символы исландского языка заменены на турецкие. Используется для турецкого и курдского языков.
ISO 8859-10 (Latin-6) Вариант Latin-4, более удобный для скандинавских языков.
ISO 8859-11 (Latin/Thai) Символы тайского языка.
ISO 8859-13 (Latin-7) Вариант Latin-4, более удобный для балтийских языков.
ISO 8859-14 (Latin-8) Расширенная латиница, включающая символы кельтских языков, таких как шотландский (гэльский) и бретонский.
ISO 8859-15 (Latin-9) Вариант Latin-1, в котором редко используемые символы заменены на необходимые для полной поддержки финского, французского и эстонского языков. Кроме того, в Latin-9 был добавлен знак евро.
ISO 8859-16 (Latin-10) Расширенная латиница, включающая символы южноевропейских и восточноевропейских (албанский, венгерский, итальянский, польский, румынский, словенский, хорватский), а также некоторых западноевропейских языков (ирландский в новой орфографии, немецкий, финский, французский). Как и в Latin-9, в Latin-10 был добавлен знак евро.

Для документов на английском и большинстве других западноевропейских языков, широко поддерживается кодирование ISO-8859-1 .

В HTML ISO-8859-1 является кодировкой по умолчанию (в XHTML и в HTML5 кодировкой по умолчанию является UTF-8).
При использовании кодировки страницы, отличной от ISO-8859-1, вам необходимо указать это в теге .

Для HTML4:

Для HTML5:

Примером ANSI-кодировки является всем известная Windows-1251 .

Windows-1251 выгодно отличается от других 8 битных кириллических кодировок (таких как CP866 и ISO 8859-5) наличием практически всех символов, использующихся в русской типографике для обычного текста (отсутствует только знак ударения). Она также содержит все символы для других славянских языков: украинского, белорусского, сербского, македонского и болгарского.
Ниже приведены десятичные значения символов кодировки Windows-1251 .

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

&&num; + код + ;

Кодировка Windows-1251 (CP1251)

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F

8.
Ђ
402
Ѓ
403

201A
ѓ
453

201E

2026

2020

2021

20AC

2030
Љ
409

2039
Њ
40A
Ќ
40C
Ћ
40B
Џ
40F

9.
ђ
452

2018

2019

201C

201D

2022

2013
-
2014

2122
љ
459

203A
њ
45A
ќ
45C
ћ
45B
џ
45F

A.

A0
Ў
40E
ў
45E
Ј
408
¤
A4
Ґ
490
¦
A6
§
A7
Ё
401
©
A9
Є
404
«
AB
¬
AC
­
AD
®
AE
Ї
407

B.
°
B0
±
B1
І
406
і
456
ґ
491
µ
B5

B6
·
B7
ё
451

2116
є
454
»
BB
ј
458
Ѕ
405
ѕ
455
ї
457

C.
А
410
Б
411
В
412
Г
413
Д
414
Е
415
Ж
416
З
417
И
418
Й
419
К
41A
Л
41B
М
41C
Н
41D
О
41E
П
41F

D.
Р
420
С
421
Т
422
У
423
Ф
424
Х
425
Ц
426
Ч
427
Ш
428
Щ
429
Ъ
42A
Ы
42B
Ь
42C
Э
42D
Ю
42E
Я
42F

E.
а
430
б
431
в
432
г
433
д
434
е
435
ж
436
з
437
и
438
й
439
к
43A
л
43B
м
43C
н
43D
о
43E
п
43F

F.
р
440
с
441
т
442
у
443
ф
444
х
445
ц
446
ч
447
ш
448
щ
449
ъ
44A
ы
44B
ь
44C
э
44D
ю
44E
я
44F

Кодировки стандарта UNICODE

Юникод (англ. Unicode) — стандарт кодирования символов, позволяющий представить знаки почти всех письменностей мира, и специальных символов. Представляемые в юникоде символы кодируются целыми числами без знака. Юникод имеет несколько форм представления символов в компьютере: UTF-8, UTF-16 (UTF-16BE, UTF-16LE) и UTF-32 (UTF-32BE, UTF-32LE). (Англ. Unicode transformation format - UTF).
UTF-8 — это в настоящее время распространённая кодировка, которая нашла широкое применение в операционных системах и веб-пространстве. Текст, состоящий из символов Unicode с номерами меньше 128 (область с кодами от U+0000 до U+007F), содержит символы набора ASCII с соответствующими кодами. Далее расположены области знаков различных письменностей, знаки пунктуации и технические символы. Под символы кириллицы выделены области знаков с кодами от U+0400 до U+052F, от U+2DE0 до U+2DFF, от U+A640 до U+A69F.

Кодировка UTF-8 является универсальной и имеет внушительный резерв на будущее. Это делает ее наиболее удобной кодировкой для использования в интернете.

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

Сегодня мы расскажем о самых популярных и действенных сайтах, которые помогут угадать кодировку и изменить ее на более понятную для вашего ПК. Чаще всего на таких сайтах работает автоматический алгоритм распознавания, однако в случае необходимости пользователь всегда может выбрать подходящую кодировку в ручном режиме.

Способ 1: Универсальный декодер

Декодер предлагает пользователям просто скопировать непонятный отрывок текста на сайт и в автоматическом режиме переводит кодировку на более понятную. К преимуществам можно отнести простоту ресурса, а также наличие дополнительных ручных настроек, которые предлагают самостоятельно выбрать нужный формат.

Работать можно только с текстом, размер которого не превышает 100 килобайт, кроме того, создатели ресурса не гарантируют, что перекодировка будет в 100% случаев успешной. Если ресурс не помог – просто попробуйте распознать текст с помощью других способов.


Обратите внимание на то, что если в отправленном вам документе вместо символов отображается «???? ?? ??????» , преобразовать его вряд ли получится. Символы появляются из-за ошибок со стороны отправителя, поэтому просто попросите отправить вам текст повторно.

Способ 2: Студия Артемия Лебедева

Еще один сайт для работы с кодировкой, в отличие от предыдущего ресурса имеет более приятный дизайн. Предлагает пользователям два режима работы, простой и расширенный, в первом случае после декодировки пользователь видит результат, во втором случае видна начальная и конечная кодировка.


С сайтом любая непонятная каша из символов быстро превращается в понятный русский текст. На данный момент работает ресурс со всеми известными кодировками.

Способ 3: Fox Tools

Fox Tools предназначен для универсальной декодировки непонятных символов в обычный русский текст. Пользователь может самостоятельно выбрать начальную и конечную кодировку, есть на сайте и автоматический режим.


Несмотря на то, что сайт якобы распознает кодировку в автоматическом режиме, пользователю все равно приходится выбирать понятный результат в ручном режиме. Из-за данной особенности куда проще воспользоваться описанными выше способами.

 

Поддерживаемые кодировки

Каноническое имя для java.nio API

Каноническое имя для java.io API и java.lang API

Описание

Big5

Big5

Big5, традиционный китайский

Big5-HKSCS

Big5_HKSCS

Big5 с расширениями для Гонконга, традиционный китайский (включая редакцию 2001 г.)

EUC-JP

EUC_JP

JISX 0201, 0208 и 0212, кодировка EUC, японский язык

EUC-KR

EUC_KR

KS C 5601, кодировка EUC, корейский

ГБ18030

ГБ18030

Упрощенный китайский, стандарт КНР

ГБ2312

EUC_CN

GB2312, кодировка EUC, упрощенный китайский

ГБК

ГБК

GBK, упрощенный китайский

IBM-Thai

Cp838

IBM Thailand расширенный SBCS

IBM01140

Cp1140

Вариант Cp037 с символом евро

IBM01141

Cp1141

Вариант CP273 с символом евро

IBM01142

Cp1142

Вариант CP277 с символом евро

IBM01143

Cp1143

Вариант Cp278 с символом евро

IBM01144

Cp1144

Вариант CP280 с символом евро

IBM01145

Cp1145

Вариант CP284 с символом евро

IBM01146

Cp1146

Вариант CP285 с символом евро

IBM01147

Cp1147

Вариант Cp297 с символом евро

IBM01148

Cp1148

Вариант CP500 с символом евро

IBM01149

Cp1149

Вариант Cp871 с символом евро

IBM037

Cp037

США, Канада (двуязычный, французский), Нидерланды, Португалия, Бразилия, Австралия

IBM1026

Cp1026

IBM Latin-5, Турция

IBM1047

Cp1047

Набор символов Latin-1 для хостов EBCDIC

IBM273

Cp273

IBM Австрия, Германия

IBM277

Cp277

IBM Дания, Норвегия

IBM278

Cp278

IBM Финляндия, Швеция

IBM280

Cp280

IBM Италия

IBM284

Cp284

IBM Каталонский / Испания, Испанский Латинская Америка

IBM285

Cp285

IBM Соединенное Королевство, Ирландия

IBM297

Cp297

IBM Франция

IBM420

Cp420

IBM Арабский

IBM424

Cp424

IBM Еврейский

IBM500

Cp500

EBCDIC 500V1

IBM860

Cp860

MS-DOS Португальский

IBM861

Cp861

MS-DOS Исландский

IBM863

Cp863

MS-DOS Канадский французский

IBM864

Cp864

PC Арабский

IBM865

Cp865

MS-DOS Nordic

IBM868

Cp868

MS-DOS Пакистан

IBM869

Cp869

IBM Новогреческий

IBM870

Cp870

IBM Multilingual Latin-2

IBM871

Cp871

IBM Исландия

IBM918

Cp918

IBM, Пакистан (урду)

ISO-2022-CN

ISO2022CN

GB2312 и CNS11643 в форме ISO 2022 CN, упрощенной и Традиционный китайский (только преобразование в Unicode)

ISO-2022-JP

ISO2022JP

JIS X 0201, 0208, в форме ISO 2022, японский

ISO-2022-KR

ISO2022KR

ISO 2022 KR, корейский

ISO-8859-3

ISO8859_3

Латинский алфавит No.3

ISO-8859-6

ISO8859_6

Латинский / арабский алфавит

ISO-8859-8

ISO8859_8

Латинский / еврейский алфавит

JIS_X0201

JIS_X0201

JIS X 0201

JIS_X0212-1990

JIS_X0212-1990

JIS X 0212

Shift_JIS

SJIS

Shift-JIS, Японский

ТИС-620

TIS620

TIS620, тайский

окна-1255

Cp1255

Windows Иврит

окна-1256

Cp1256

Windows арабский

окна-1258

Cp1258

Windows Вьетнамский

окна-31j

MS932

Windows Японский

x-Big5-Solaris

Big5_Solaris

Big5 с семью дополнительными отображениями идеограммы Ханзи для Solaris zh_TW.BIG5 язык

x-euc-jp-linux

EUC_JP_LINUX

JISX 0201, 0208, кодировка EUC, японский язык

х-EUC-TW

EUC_TW

CNS11643 (плоскость 1-7,15), кодировка EUC, традиционный китайский

x-eucJP-Open

EUC_JP_Solaris

JISX 0201, 0208, 0212, кодировка EUC, японский язык

х-IBM1006

Cp1006

IBM AIX Пакистан (урду)

х-IBM1025

Cp1025

IBM Multilingual Cyrillic: Болгария, Босния, Герцеговина, Македония (FYR)

х-IBM1046

Cp1046

IBM Arabic - Windows

х-IBM1097

Cp1097

IBM Иран (фарси) / персидский

х-IBM1098

Cp1098

IBM Иран (фарси) / персидский (ПК)

х-IBM1112

Cp1112

IBM Латвия, Литва

х-IBM1122

Cp1122

IBM Эстония

х-IBM1123

Cp1123

IBM Украина

х-IBM1124

Cp1124

IBM AIX Украина

х-IBM1381

Cp1381

IBM OS / 2, DOS Китайская Народная Республика (КНР)

х-IBM1383

Cp1383

IBM AIX Китайская Народная Республика (КНР)

х-IBM33722

Cp33722

IBM-eucJP - японский (расширенный набор 5050)

х-IBM834

Cp834

IBM EBCDIC DBCS-only Korean

х-IBM856

Cp856

IBM Еврейский

х-IBM875

Cp875

IBM Греческий

х-IBM921

Cp921

IBM Латвия, Литва (AIX, DOS)

х-IBM922

Cp922

IBM Эстония (AIX, DOS)

х-IBM930

Cp930

Японский катакана и кандзи смешанные с 4370 UDC, расширенный набор 5026

х-IBM933

Cp933

Корейский смешанный с 1880 УДК, расширенный набор 5029

х-IBM935

Cp935

Узел на упрощенном китайском, смешанный с 1880 UDC, расширенный набор 5031

х-IBM937

Cp937

Традиционный китайский хост, соединенный с 6204 UDC, расширенный набор 5033

х-IBM939

Cp939

Японские латинские кандзи, смешанные с 4370 УДК, расширенный набор из 5035

х-IBM942

Cp942

IBM OS / 2 Японский, расширенный набор Cp932

х-IBM942C

Cp942C

Вариант Cp942

х-IBM943

Cp943

IBM OS / 2 на японском языке, расширенный набор Cp932 и Shift-JIS

х-IBM943C

Cp943C

Вариант Cp943

х-IBM948

Cp948

OS / 2 Китайский (Тайвань) расширенный набор 938

х-IBM949

Cp949

ПК корейский

х-IBM949C

Cp949C

Вариант Cp949

х-IBM950

Cp950

ПК Китайский (Гонконг, Тайвань)

х-IBM964

Cp964

AIX китайский (Тайвань)

х-IBM970

Cp970

AIX корейский

х-ISCII91

ISCII91

ISCII91 кодировка индийских скриптов

х-ISO2022-CN-CNS

ISO2022_CN_CNS

CNS11643 в форме ISO 2022 CN, традиционный китайский (преобразование только из Unicode)

х-ISO2022-CN-ГБ

ISO2022_CN_GB

GB2312 в форме ISO 2022 CN, упрощенный китайский (преобразование из Только Unicode)

x-iso-8859-11

x-iso-8859-11

Латинский / тайский алфавит

х-JIS0208

х-JIS0208

JIS X 0208

x-JISAutoDetect

JISAutoDetect

Обнаруживает и преобразует Shift-JIS, EUC-JP, ISO 2022 JP (преобразование только в Unicode)

x-Johab

x-Johab

Корейский, набор символов Джохаб

x-Mac Арабский

Макарабский

Macintosh Арабский

x-MacCentralEurope

MacCentralEurope

Macintosh Latin-2

x-MacCroatian

Макхорватский

Macintosh Хорватский

x-MacCyrillic

MacCyrillic

Macintosh Кириллица

х-MacDingbat

MacDingbat

Macintosh Dingbat

x-MacGreek

MacGreek

Macintosh Греческий

x-Mac, Иврит

MacHebrew

Macintosh Еврейский

x-MacIceland

MacIceland

Macintosh Исландия

x-MacRoman

MacRoman

Macintosh Роман

x-Mac Румыния

MacRomania

Macintosh Румыния

x-MacSymbol

MacSymbol

Macintosh Symbol

x-MacThai

MacThai

Macintosh Thai

x-Mac Турецкий

MacTurkish

Macintosh Турецкий

x-Mac Украина,

Mac Украина

Macintosh Украина

х-MS950-HKSCS

MS950_HKSCS

Windows Традиционный китайский с расширениями для Гонконга

x-mswin-936

MS936

Windows (упрощенный китайский)

x-PCK

PCK

Solaris версия Shift_JIS

x-SJIS_0213

x-SJIS_0213

Shift_JISX0213

x-windows-50220

Cp50220

Кодовая страница Windows 50220 (7-битная реализация)

x-windows-50221

Cp50221

Кодовая страница Windows 50221 (7-битная реализация)

x-окна-874

MS874

Windows Тайский

x-windows-949

MS949

Windows Корейский

x-windows-950

MS950

Windows Традиционный китайский

x-windows-iso2022jp

x-windows-iso2022jp

Вариант ISO-2022-JP (на основе MS932)

PostgreSQL: Документация: 9.3: Поддержка набора символов

Поддержка набора символов в PostgreSQL позволяет хранить текст в множество наборов символов (также называемых кодировками), включая однобайтовые наборы символов, такие как серия ISO 8859 и многобайтовые наборы символов, такие как EUC (Extended Unix Code), UTF-8 и Mule внутренний код. Можно использовать все поддерживаемые наборы символов. прозрачно для клиентов, но некоторые из них не поддерживаются для использования внутри сервера (то есть как кодирование на стороне сервера). По умолчанию набор символов выбирается при инициализации кластера базы данных PostgreSQL с помощью initdb.Его можно переопределить при создании база данных, поэтому у вас может быть несколько баз данных с разными набор символов.

Однако важным ограничением является то, что каждая база данных набор символов должен быть совместим с настройками локали базы данных LC_CTYPE (классификация символов) и LC_COLLATE (порядок сортировки строк). Для C или POSIX языковой стандарт, разрешен любой набор символов, но для других языков есть это только один набор символов, который будет работать правильно. (В Windows однако кодировку UTF-8 можно использовать с любой локалью.)

Таблица 22-1 показывает наборы символов, доступные для использования в PostgreSQL.

Таблица 22-1. PostgreSQL Наборы символов

Имя Описание Язык Сервер? байт / символ Псевдонимы
BIG5 Большая пятерка Традиционный китайский Нет 1-2 WIN950, Windows950
EUC_CN Расширенный код UNIX - CN Упрощенный китайский Есть 1-3
EUC_JP Расширенный код UNIX - JP Японский Есть 1-3
EUC_JIS_2004 Расширенный код UNIX-JP, JIS X 0213 Японский Есть 1-3
EUC_KR Расширенный код UNIX-KR Корейский Есть 1-3
EUC_TW Расширенный код UNIX-TW Традиционный китайский, Тайваньский Есть 1-3
ГБ18030 Национальный стандарт китайский Нет 1–4
ГБК Расширенный национальный стандарт Упрощенный китайский Нет 1-2 WIN936, Windows936
ISO_8859_5 ISO 8859-5, ECMA 113 Латиница / кириллица Есть 1
ISO_8859_6 ISO 8859-6, ECMA 114 Латинский / арабский Есть 1
ISO_8859_7 ISO 8859-7, ECMA 118 Латинский / греческий Есть 1
ISO_8859_8 ISO 8859-8, ECMA 121 Латиница / Иврит Есть 1
JOHAB JOHAB Корейский (хангыль) Нет 1-3
КОИ8Р КОИ8-Р Кириллица (русская) Есть 1 КОИ8
КОИ8У КОИ8-У Кириллица (украинская) Есть 1
ЛАТИН 1 ISO 8859-1, ECMA 94 Западноевропейская Есть 1 ISO88591
ЛАТИН 2 ISO 8859-2, ECMA 94 Центральноевропейская Есть 1 ISO88592
ЛАТИН 3 ISO 8859-3, ECMA 94 Южноевропейский Есть 1 ISO88593
ЛАТИН 4 ISO 8859-4, ECMA 94 Северо-Европейский Есть 1 ISO88594
LATIN5 ISO 8859-9, ECMA 128 Турецкий Есть 1 ISO88599
LATIN6 ISO 8859-10, ECMA 144 Скандинавский Есть 1 ISO885910
LATIN7 ISO 8859-13 Балтика Есть 1 ISO885913
LATIN8 ISO 8859-14 Кельтский Есть 1 ISO885914
ЛАТИН 9 ISO 8859-15 LATIN1 с евро и акцентами Есть 1 ISO885915
ЛАТИН 10 ISO 8859-16, ASRO SR 14111 Румынский Есть 1 ISO885916
MULE_INTERNAL Мул внутренний код Многоязычный Emacs Есть 1–4
SJIS Сдвиг JIS Японский Нет 1-2 Мсканджи, ShiftJIS, WIN932, Окна932
SHIFT_JIS_2004 Сдвиг JIS, JIS X 0213 Японский Нет 1-2
SQL_ASCII не указано (см. Текст) любой Есть 1
UHC Единый код хангыль Корейский Нет 1-2 WIN949, Windows949
UTF8 Unicode, 8-битный все Есть 1–4 Юникод
WIN866 Окна CP866 Кириллица Есть 1 ALT
WIN874 Окна CP874 Тайский Есть 1
WIN1250 Окна CP1250 Центральноевропейская Есть 1
WIN1251 Окна CP1251 Кириллица Есть 1 ВЫИГРАТЬ
WIN1252 Окна CP1252 Западноевропейская Есть 1
WIN1253 Окна CP1253 Греческий Есть 1
WIN1254 Окна CP1254 Турецкий Есть 1
WIN1255 Окна CP1255 Еврейский Есть 1
WIN1256 Окна CP1256 Арабский Есть 1
WIN1257 Окна CP1257 Балтика Есть 1
WIN1258 Окна CP1258 Вьетнамский Есть 1 ABC, TCVN, TCVN5712, VSCII

Не все клиентские API поддерживают все перечисленные наборы символов.Например, драйвер PostgreSQL JDBC не поддерживает MULE_INTERNAL, LATIN6, LATIN8 и ЛАТИНСКИЙ 10.

Параметр SQL_ASCII ведет себя значительно отличается от других настроек. Когда сервер набор символов - SQL_ASCII, сервер интерпретирует байтовые значения 0-127 в соответствии со стандартом ASCII, а байтовые значения 128–255 считаются неинтерпретируемыми символами. Нет преобразование кодировки будет выполнено, если установлено значение SQL_ASCII. Таким образом, этот параметр не так уж и хорош. объявление, что используется определенная кодировка, как объявление незнание кодировки.В большинстве случаев, если вы работаете с любыми данными, отличными от ASCII, неразумно использовать параметр SQL_ASCII, потому что PostgreSQL не сможет вам помочь преобразование или проверка символов, отличных от ASCII.

initdb определяет символ по умолчанию установить (кодировку) для PostgreSQL кластер. Например,

 initdb -E EUC_JP 

устанавливает набор символов по умолчанию на EUC_JP (расширенный код Unix для японского языка). Вы можете используйте --encoding вместо -E, если вы предпочитаете более длинные строки параметров. Если нет -E или --encoding задана опция, initdb пытается определить подходящую кодировку для использования на основе указанного или языковой стандарт по умолчанию.

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

createdb -E EUC_KR -T template0 --lc-collate = ko_KR.euckr --lc-ctype = ko_KR.euckr корейский 

Это создаст базу данных с именем korean, которая использует набор символов EUC_KR и локаль ko_KR. Другой способ добиться этого - использовать эту команду SQL:

СОЗДАТЬ БАЗУ ДАННЫХ корейский С КОДИРОВАНИЕМ 'EUC_KR' LC_COLLATE = 'ko_KR.euckr' LC_CTYPE = 'ko_KR.euckr 'TEMPLATE = template0; 

Обратите внимание, что приведенные выше команды определяют копирование базы данных template0. При копировании любой другой базы данных, настройки кодировки и локали не могут быть изменены по сравнению с исходной базы данных, поскольку это может привести к повреждению данных. Для дополнительную информацию см. в разделе 21.3.

Кодировка для базы данных хранится в системном каталоге. pg_database. Вы можете увидеть это, используя параметр psql -l или команда \ l.

 $  psql -l 
                                         Список баз данных
   Имя | Владелец | Кодирование | Сортировка | Ctype | Привилегии доступа
----------- + ---------- + ----------- + ------------- + - ------------ + -------------------------------------
 clocaledb | хлиннака | SQL_ASCII | C | C |
 englishdb | хлиннака | UTF8 | en_GB.UTF8 | en_GB.UTF8 |
 японский | хлиннака | UTF8 | ja_JP.UTF8 | ja_JP.UTF8 |
 корейский | хлиннака | EUC_KR | ko_KR.euckr | ko_KR.euckr |
 postgres | хлиннака | UTF8 | fi_FI.UTF8 | fi_FI.UTF8 |
 template0 | хлиннака | UTF8 | fi_FI.UTF8 | fi_FI.UTF8 | {= c / hlinnaka, hlinnaka = CTc / hlinnaka}
 template1 | хлиннака | UTF8 | fi_FI.UTF8 | fi_FI.UTF8 | {= c / hlinnaka, hlinnaka = CTc / hlinnaka}
(7 рядов) 

Важно: В большинстве современных операционных систем PostgreSQL может определить, какой набор символов подразумевается настройкой LC_CTYPE, и это заставит использовать только соответствующую кодировку базы данных.На старые системы, вы несете ответственность за использование кодировка, ожидаемая выбранной вами локалью. Ошибка в эта область может привести к странному поведению зависящего от локали такие операции, как сортировка.

PostgreSQL позволит суперпользователи для создания баз данных с кодировкой SQL_ASCII, даже если LC_CTYPE не C или POSIX. Как отмечалось выше, SQL_ASCII не требует, чтобы данные, хранящиеся в база данных имеет какую-либо конкретную кодировку, поэтому этот выбор ставит риски ненадлежащего поведения, зависящего от местных условий.Используя эту комбинацию настройки устарели и когда-нибудь могут быть полностью запрещены.

PostgreSQL поддерживает автоматические преобразование набора символов между сервером и клиентом наверняка комбинации наборов символов. Информация о преобразовании хранится в системный каталог pg_conversion. PostgreSQL поставляется с некоторыми предопределенные преобразования, как показано в Таблице 22-2. Ты может создать новое преобразование с помощью команды SQL CREATE CONVERSION.

Таблица 22-2. Преобразование набора символов клиент / сервер

Набор символов сервера Доступные наборы символов клиента
BIG5 не поддерживается в качестве сервера кодировка
EUC_CN EUC_CN, MULE_INTERNAL, UTF8
EUC_JP EUC_JP, MULE_INTERNAL, SJIS, UTF8
EUC_JIS_2004 EUC_JIS_2004, SHIFT_JIS_2004, UTF8
EUC_KR EUC_KR, MULE_INTERNAL, UTF8
EUC_TW EUC_TW, BIG5, MULE_INTERNAL, UTF8
ГБ18030 не поддерживается в качестве сервера кодировка
ГБК не поддерживается в качестве сервера кодировка
ISO_8859_5 ISO_8859_5, KOI8R, MULE_INTERNAL, UTF8, WIN866, WIN1251
ISO_8859_6 ISO_8859_6, UTF8
ISO_8859_7 ISO_8859_7, UTF8
ISO_8859_8 ISO_8859_8, UTF8
JOHAB не поддерживается в качестве сервера кодировка
КОИ8Р KOI8R, ISO_8859_5, MULE_INTERNAL, UTF8, WIN866, WIN1251
КОИ8У КОИ8У, UTF8
ЛАТИН 1 LATIN1, MULE_INTERNAL, UTF8
ЛАТИН 2 LATIN2, MULE_INTERNAL, UTF8, WIN1250
ЛАТИН 3 LATIN3, MULE_INTERNAL, UTF8
ЛАТИН 4 LATIN4, MULE_INTERNAL, UTF8
LATIN5 LATIN5, UTF8
LATIN6 LATIN6, UTF8
LATIN7 LATIN7, UTF8
LATIN8 LATIN8, UTF8
ЛАТИН 9 LATIN9, UTF8
ЛАТИН 10 LATIN10, UTF8
MULE_INTERNAL MULE_INTERNAL, BIG5, EUC_CN, EUC_JP, EUC_KR, EUC_TW, ISO_8859_5, KOI8R, LATIN1 в LATIN4, SJIS, WIN866, WIN1250, WIN1251
SJIS не поддерживается в качестве сервера кодировка
SHIFT_JIS_2004 не поддерживается в качестве сервера кодировка
SQL_ASCII любые (конвертации не будет выполнено)
UHC не поддерживается в качестве сервера кодировка
UTF8 все поддерживаются кодировки
WIN866 WIN866, ISO_8859_5, KOI8R, MULE_INTERNAL, UTF8, WIN1251
WIN874 WIN874, UTF8
WIN1250 WIN1250, LATIN2, MULE_INTERNAL, UTF8
WIN1251 WIN1251, ISO_8859_5, KOI8R, MULE_INTERNAL, UTF8, WIN866
WIN1252 WIN1252, UTF8
WIN1253 WIN1253, UTF8
WIN1254 WIN1254, UTF8
WIN1255 WIN1255, UTF8
WIN1256 WIN1256, UTF8
WIN1257 WIN1257, UTF8
WIN1258 WIN1258, UTF8

Чтобы включить автоматическое преобразование набора символов, вы должны указать PostgreSQL набор символов (кодировка), которую вы хотели бы использовать в клиенте.Есть несколько способов добиться этого:

  • Использование команды \ encoding в psql. \ encoding позволяет изменять кодировку клиента на муха. Например, чтобы изменить кодировку на SJIS, введите:

    .
     \ кодировка SJIS 
  • libpq (Раздел 31.10) имеет функции для управления клиентская кодировка.

  • Использование SET client_encoding TO. Параметр кодирование клиента может быть выполнено с помощью этой команды SQL:

     УСТАНОВИТЬ CLIENT_ENCODING В 'значение'; 

    Также вы можете использовать стандартный синтаксис SQL SET ИМЕНА для этого:

     УСТАНОВИТЬ ИМЯ 'значение'; 

    Для запроса текущей клиентской кодировки:

     ПОКАЗАТЬ client_encoding; 

    Для возврата к кодировке по умолчанию:

     СБРОС client_encoding; 
  • Использование PGCLIENTENCODING.Если переменная среды PGCLIENTENCODING - это определена в клиентской среде, эта клиентская кодировка автоматически выбирается при подключении к серверу. (Впоследствии это можно изменить, используя любой из других методов. упомянуто выше.)

  • Использование переменной конфигурации client_encoding. Если установлена ​​переменная client_encoding, эта клиентская кодировка выбирается автоматически при подключении к сервер сделан. (Впоследствии это может быть отменено с помощью любого других методов, упомянутых выше.)

Если преобразование определенного символа невозможно - предположим, вы выбрали EUC_JP для сервера и LATIN1 для клиента, а некоторые Возвращаются японские символы, которые не имеют представления в LATIN1 - сообщается об ошибке.

Если набор символов клиента определен как SQL_ASCII, преобразование кодировки отключено, независимо от набора символов сервера. Как и в случае с сервером, использование SQL_ASCII неразумно, если вы не работа с данными в формате ASCII.

Это хорошие источники для начала изучения различных видов системы кодирования.

CJKV Обработка информации: китайский, Японская, корейская и вьетнамская вычислительная техника

Содержит подробные объяснения EUC_JP, EUC_CN, EUC_KR, EUC_TW.

http://www.unicode.org/

Веб-сайт Консорциума Unicode.

RFC 3629

UTF-8 (8-битный UCS / Unicode Формат преобразования) определяется здесь.

Добавление поддержки параметров кодирования XML

Добавление поддержки параметров кодирования XML

Открыть тему с навигацией

InstallShield 2014 г.

InstallShield позволяет указать, какой тип кодировки следует использовать для файла XML. Этот параметр доступен на вкладке «Дополнительно» при выборе файла XML в представлении «Изменения файла XML». Если тип кодировки, который вы хотите использовать, не включен в список доступных параметров кодирования, вы можете изменить один из файлов, установленных во вложенной папке папки InstallShield Program Files, чтобы добавить дополнительные параметры.Вы можете добавить любую кодировку, поддерживаемую MSXML. Следующие инструкции объясняют, как это сделать.

Внимание! Следующие инструкции требуют, чтобы вы изменили файл Settings.xml, устанавливаемый вместе с InstallShield. Этот файл содержит важные данные; если он отредактирован неправильно, это может привести к сбою работы InstallShield. Будьте предельно осторожны при редактировании этого файла.

Чтобы добавить дополнительные параметры кодирования в список «Кодировка» на вкладке «Дополнительно» в представлении «Изменения файла XML»:

2. Найдите файл Settings.xml, установленный вместе с InstallShield. Settings.xml устанавливается в одно из следующих мест, в зависимости от того, какую языковую версию InstallShield вы используете:
Английский - InstallShield Program Files Folder \ System \ 0409
Японский - папка с файлами программы InstallShield \ System \ 0411
3. Создайте резервную копию файла Settings.xml на случай, если позже вам потребуется вернуться к исходной версии.
4. Используйте текстовый редактор или редактор XML-файлов, чтобы открыть файл Settings.xml.
5. Найдите элемент ISXML и его дочерние элементы. Выглядят они примерно так:

<Кодировки>

WINDOWS-1250

WINDOWS-1251

WINDOWS-1252

WINDOWS-1253

WINDOWS-1254

WINDOWS-1255

WINDOWS-1256

WINDOWS-1257

WINDOWS-1258

ISO-8859-1

ISO-8859-2

ISO-8859-3

ISO-8859-4

ISO-8859-5

ISO-8859-6

ISO-8859-7

ISO-8859-8

ISO-8859-9

US-ASCII

UNICODE-1-1-UTF-8

UNICODE-2-0-UTF-16

UNICODE-2-0-UTF-8

ISO-10646-UCS-2

UCS-4

UCS-2

UTF-16

UTF-8

6. Между открывающим и закрывающим тегами Encodings добавьте новую строку, например:

Type_of_Encoding

, где Type_of_Encoding указывает кодировку, которая должна быть доступна. Это должно быть значение, которое InstallShield должен использовать для атрибута кодировки вашего XML-документа.

7. Сохраните файл Settings.xml.
8. Убедитесь, что ваш XML-код правильно сформирован; если он неправильно сформирован, у вас могут возникнуть проблемы с использованием InstallShield. В большинстве случаев вы можете определить неправильно сформированный XML-код, открыв файл Settings.xml в Internet Explorer. Вы должны иметь возможность расширять и сжимать элементы и ; если не можете, проверьте код на наличие ошибок.

В следующий раз, когда вы откроете представление изменений XML-файла в InstallShield, вы увидите тип кодировки, который вы добавили, как один из доступных вариантов в Кодировке, используемой для нового списка файлов на вкладке «Дополнительно» для XML-файла в представление «Изменения файла XML».

См. Также

Вкладка Advanced для файла XML

Настройка дополнительных параметров для InstallShield

Руководство пользователя

Глава 6: Поддержка Unicode и не-ASCII

Глава 6.Поддержка Unicode и не-ASCII

6.1 Формат для печати в кавычках
6.2 Символы, отличные от ASCII в заголовках
6.3 Unicode и UTF-8
6.4 Поддержка UTF-8 в AspEmail
6.5 Допустимые значения CharSet

6.1 Формат цитируемой печати

AspEmail может отправлять сообщения в алфавитах, отличных от US-ASCII. за счет поддержки формата «Цитата для печати». Этот формат описан в RFC-2045.Идея формата заключается в том, что символы с кодами меньше 33 и больше чем 126 представлены знаком "=", за которым следует двузначное шестнадцатеричное представление. ценности персонажа. Например, десятичное значение 12 (подача формы US-ASCII) представлен как = 0C , а десятичное значение 61 (US-ASCII "=") может быть представлено как = 3D .

AspEmail кодирует тело сообщения в формате Quoted-Printable автоматически, если для свойства ContentTransferEncoding установлено значение строка "Quoted-Printable" (регистр букв не имеет значения).Вы также можете установить свойство Charset к соответствующему набору символов. Следующий фрагмент кода отправляет сообщение на русском языке:

<% @ codepage = 1251%>

<%
...
Mail.Charset = "Windows-1251"
Mail.Body = "-".
Mail.ContentTransferEncoding = "Quoted-Printable"
%>

Директива <% @ codepage = 1251%> предписывает интерпретатор ASP для обработки жестко запрограммированных символов в сценарии в виде русских символов (1251 - русская кодовая страница).Как результат, свойство Body получит русскую строку Unicode.

6.2 Символы не-ASCII в заголовках

Если вы хотите отправить сообщение с определенными заголовками, например, Тема: , To: или From: , содержащие символы, отличные от US-ASCII, вы должны использовать метод Mail.EncodeHeader для кодирования строки символов в соответствии с RFC 1522.Метод принимает один обязательный параметр, строку заголовка, и один необязательный параметр, набор символов, который по умолчанию равен « ISO-8859-1 ». Например:

<% @ codepage = 1251%>

<%
Mail.Subject = Mail.EncodeHeader ("-", "Windows-1251")
Mail.FromName = Mail.EncodeHeader ("", "Windows-1251")
Mail.AddAddress "[email protected]", Mail.EncodeHeader ("")
%>

6.3 Юникод и UTF-8

Из MSDN: "Юникод - это 16-битный стандарт кодировки символов фиксированной ширины, который охватывает практически все символы, обычно используемые на компьютерах сегодня. Это включает в себя большинство письменных языков мира, а также издательские персонажи, математические и технические символы и знаки препинания ".

С Unicode.org: "Компьютеры ... хранят буквы и другие символы присвоение номера каждому.До изобретения Unicode существовало сотни различных систем кодирования для присвоения этих чисел. Ни одна кодировка не может содержать достаточно символов ... Unicode предоставляет уникальный номер для каждого символа, независимо от того, какая платформа, какая программа, на каком языке ».

Например, основная латинская буква «А» имеет шестнадцатеричный код 0041 (65), русский буква имеет код Hex 0416 (1046), а китайский иероглиф имеет код Hex 32A5 (12965).

UTF-8 (формат преобразования Unicode, 8-битная форма кодирования) рекомендуется формат, который будет использоваться для отправки данных на основе Unicode по сетям, в частности, через Интернет. UTF-8 представляет значение Unicode как последовательность из 1, 2 или 3 байтов.

Символы Юникода в диапазоне от 0000 до 007F кодируются просто как байты. 00 до 7F. Это означает, что файлы и строки, содержащие только 7-битный ASCII символы имеют одинаковую кодировку как в ASCII, так и в UTF-8.Следовательно, Unicode 0041 («A») в UTF-8 - это Hex 41.

Символы Юникода в диапазоне от 0080 до 07FF кодируются как последовательность из двух байтов. Например, Unicode 0416 () кодируется как Hex D0 96. Кодируются символы Unicode в диапазоне от Hex 0800 до FFFF. как последовательность из трех байтов. Например, Unicode 32A5 () кодируется как Hex E3 8A A5.

Начиная с Unicode 2.0, символы больше не ограничиваются диапазоном от Hex 0000 до Hex FFFF, называемым базовой многоязычной плоскостью (BMP).Также поддерживаются символы в диапазоне от Hex 10000 до Hex 10FFFF, называемые дополнительными кодовыми точками . Среди последних - Emoji символов, например:

Поскольку символы Emoji (и другие дополнительные кодовые точки) превышают шестнадцатеричный FFFF, они должны быть представлены двумя 16-битными числами вместо одного, как показано в правом столбце таблицы выше.Эти два числа называются старшей суррогатной кодовой точкой и младшей суррогатной кодовой точкой . Формулы для преобразования дополнительной кодовой точки в ее высокие и низкие суррогаты следующие:

привет = (cp - 0x10000) / 0x400 + 0xD800
lo = (cp - 0x10000)% 0x400 + 0xDC00

Эти числа пригодятся, когда нужно включить эмодзи в тему электронного письма, как показано в следующем разделе.

6.4 Поддержка UTF-8 в AspEmail

AspEmail 5.0 предлагает полную поддержку UTF-8 как в теле сообщения, так и в заголовках. Чтобы отправить сообщение в кодировке UTF-8, вы должны установить CharSet свойство к строке " UTF-8 " (регистр не имеет значения), и ContentTransferEncoding на « Quoted-Printable ». Вы также должны передать « UTF-8 » в качестве второго аргумента для EncodeHeader .

В следующем примере кода демонстрируется использование UTF-8:

Иконка Кодовая точка (шестнадцатеричная) Кодировка (шестнадцатеричная)
😂 1F602 D83D DE02
🌹 1F339 D8322





<%
'изменить на адрес вашего собственного SMTP-сервера
strHost = "smtp.myisp.net "

'Включить UTF-8 -> Перевод Unicode для элементов формы
Session.CodePage = 65001 'Код UTF-8

Если Запрос ("Отправить") "" То
Установите Mail = Server.CreateObject ("Persits.MailSender")
'введите действительный SMTP-хост
Mail.Host = strHost

Mail.From = "[email protected]" 'с адреса
Mail.FromName = Mail.EncodeHeader (Запрос ("FromName"), "utf-8")
Почта.Запрос AddAddress («Кому»)

'тема сообщения
Mail.Subject = Mail.EncodeHeader (Запрос («Тема»), «utf-8»)

'тело сообщения
Mail.Body = Request ("Body")

'Параметры UTF-8
Mail.CharSet = "UTF-8"
Mail.ContentTransferEncoding = "Quoted-Printable"
Mail.Send 'отправить сообщение
Response.Write "Сообщение отправлено" & Request ("To")
Конец, если
%>




AspEmail: Unicode.asp


<ТАБЛИЦА ЯЧЕЙКИ = 0 ЯЧЕЙКА = 0>
Введите адрес электронной почты:
Введите свое имя:
Введите тему:
Введите текст:




В этом примере кода есть несколько важных элементов, которые нельзя упускать из виду:

Этот тег META определяет набор символов для этой страницы как UTF-8.Это, помимо прочего, указывает браузеру кодировать все элементы формы в кодировке UTF8. когда форма отправлена.

Session.CodePage = 65001

Эта строка указывает нашему сценарию ASP преобразовывать элементы формы в кодировке UTF8. (возвращается коллекцией Request.Form) обратно к обычным строкам Unicode. Номер 65001 - это кодовая страница UTF-8.

Mail.Subject = Mail.EncodeHeader (Запрос ("Тема"), "utf-8")

Второй необязательный аргумент установлен в «UTF-8» для правильного кодирования заголовка.

Mail.CharSet = "UTF-8"
Mail.ContentTransferEncoding = "Quoted-Printable"

Эти две строки обеспечивают правильную кодировку UTF-8 тела сообщения.

Щелкните ссылки ниже, чтобы запустить этот пример кода:

http: //localhost/aspemail/NonAscii/Unicode.asp
http: //localhost/aspemail/NonAscii/Unicode.aspx

Метод EncodeHeader также можно использовать для включения символов Emoji в тему сообщения.Двухзначная кодировка Emoji должна использоваться вместе со встроенным кодом VBScript ChrW . функция, которая преобразует число в 2-байтовый символ (Unicode). В следующих фрагментах кода добавлены два смайлика, смеющееся лицо и роза (упомянутые в предыдущем разделе). в тему:

...
Mail.Subject = Mail.EncodeHeader ("Emoji Test:" + ChrW (& HD83D) & ChrW (& HDE02) & ChrW (& HD83C) & ChrW (& HDF39), "utf-8")
...

6.5 Допустимые значения CharSet

Вы можете указать следующие строковые значения для свойства CharSet , а также второй необязательный аргумент метода EncodeHeader :
Значение Значение
"УТФ-8" UTF-8
"УТФ-7" UTF-7
"Окна-1250"
"cp1250"
ANSI - Центральная Европа
"Окна-1251"
"cp1251"
ANSI - кириллица
"Windows-1252"
"cp1252"
"ascii"
"us-ascii"
Латиница I
"Окна-1253"
"cp1253"
ANSI - греческий
"Окна-1254"
"cp1254"
ANSI - турецкий
"Окна-1255"
"cp1255"
ANSI - иврит
"Окна-1256"
"cp1256"
ANSI - арабский
"Окна-1257"
"cp1257"
ANSI - Балтика
"Окна-1258"
"cp1258"
ANSI - вьетнамский
«ИСО-8859-1» Latin I (значение по умолчанию)
«ИСО-8859-2» Центральная Европа
«ИСО-8859-3» Латиница 3
«ИСО-8859-4» Балтика
«ИСО-8859-5» Кириллица
«ИСО-8859-6» Арабский
«ИСО-8859-7» Греческий
«ISO-8859-8» Еврейский
«ИСО-8859-9» Латиница 5
«ИСО-8859-15» Латиница 9
"cp866" Русский DOS
«КОИ8-Р» Русский
«КОИ8-У» Украинский
"shift_jis" Японская Windows
"ks_c_5601-1987"
"корейский"
Корейский
«EUC-KR»
«корейский»
EUC - корейский
«БОЛЬШОЙ5» Традиционный китайский Windows
"GB2312"
"китайский"
Китайский упрощенный
"HZ-GB-2312" Упрощенный китайский HZ
«EUC-JP» EUC - японский
"X-EUC-TW" EUC - традиционный китайский

Установить набор символов по умолчанию для открытия существующих файлов

Здравствуйте, @ Friemen-yellow,

У вас, наверное, включена кодировка auto -detection .Я советую вам отключить эту функцию ( Настройки> Предпочтения…> MISC> Автоопределение кодировки символов ). Итак, при открытии файла с кодировкой Cyrillic , N ++ должен использовать стандартную кодировку ANSI

И, поскольку ваш набор символов по умолчанию , для файлов NON -Unicode, конечно же, Windows-1251 , вы должны немедленно увидеть правильные символы кириллицы , которые вы ожидаете :-))

Чтобы проверить конфигурацию кодировки по умолчанию, для файлов без Unicode просто откройте панель вставки ASCII ( Правка> Панель символов ).Для Windows-1251 , символов кириллицы в верхнем регистре находятся между значениями кода 192 и 223 , а символы в нижнем регистре кириллицы находятся между значениями кода 224 и 255 .

И если вы измените кодировку по умолчанию ANSI на кодировку Windows-1251 ( Кодировка> Наборы символов> Кириллица> Windows-1251 ), список на панели вставки ASCII будет обновлен, но останется без изменений !

Для быстрого перехода на кодировку Windows-1251 можно также использовать ярлык.Выберите пункт меню «Настройки »> «Сопоставитель ярлыков…»> «Главное меню»> «Windows-1251 » (строка 213 ). Я лично выбрал ярлык Crtl + Alt + E . К сожалению, есть небольшая ошибка , так как ярлык описание перезаписывает зону кодирования в правой части строки состояния ! Итак, новая текущая кодировка , как правило, невозможно отличить : - ((

С уважением,

парень038

PS :

Кроме того, если вы используете параметр Настройки> Настройки> Резервное копирование> Запомнить текущий сеанс для следующего запуска , кодировка Windows-1251 ваших открытых файлов Cyillic должна быть сохраненных , от одного сеанса до следующий , так как это , ясно, что закодирован в сеансе .xml файл конфигурации ( encoding = «1251» ), если, конечно, вы закрыли эти файлы , а не , перед закрытием N ++

Справка для файла ANSI

Привет, @ alan-kilborn и Все ,

Ну Алан , думаю проблема и есть реальный баг !


Во-первых, я полагаю, что в вашем Настройки> Настройки ...> Новый документ> Кодировка :

И в Настройки> Настройки...> Новый документ> РАЗНОЕ. :

  • Кодировка символов Autodetect опция UNCHECKED

Примечание Алан , это тоже моя собственная конфигурация !


Теперь предположим, что вы открыли новый файл N ++ => Итак, в строке состояния отображается кодировка UTF-8 : логическая !

Теперь просто напишите строку ABCD , сохраните этот новый файл как Test.txt и закройте Блокнот ++

При открытии этого файла любой редактор, без любого другого указания, не может сказать, какая у него правая кодировка:

  • Его можно закодировать с помощью четырех байтов 41424344 в файле ANSI (так что любая кодировка Windows как Win-1252 , Win-1251 , потому что ASCII часть, от 00 до 7F это идентично

  • Он также может быть закодирован с помощью четырех байтов 41424344 в файле N ++ UTF-8 (так что без BOM ).Действительно, с кодировкой UTF-8 любой символ с кодовой точкой под \ x {0080} кодируется только с помощью 1 байтов, от 00 до 7F

Но, поскольку у нас есть настройка Применить к открытым файлам ANSI установить , когда вы повторно -открываете файл Test.txt , вы снова должны увидеть UTF-8 индикация в статусе бар

И, добавление символа SOH ( \ x {01} ) или любого символа до \ x {1F} (я проверил), между AB и CD не изменится что-нибудь.Кодировка останется UTF-8 !

Но добавление символа NUL изменение приводит к тому, что изменяет кодировку как ANSI , что находится в противоречии с нашими пользовательскими настройками ! Однако этот конкретный случай ( NUL char + чистый ASCII символов, только ) на самом деле не имеет значения, поскольку текущий файл содержимого не , а изменяется при переключении с ANSI на UTF-8 и наоборот!


Что еще больше раздражает , так это то, что наличие символа NUL по-прежнему вызывает кодировку ANSI , , даже если символ, с кодом поверх \ x {007F} , это , добавленное в файл : - ((Например, если вы добавите очень распространенный французский char é , чтобы получить строку AB NUL CDé и сохраните этот файл с UTF-8 кодировка, когда вы повторно -открываете этот файл, кодировка ошибочно изменена на ANSI .Итак, отображается неправильная строка AB NUL CDÃ © !

Помните, что содержимое файла Test.txt , строка AB NUL CDé , после сохранения будет 4142004344C3A9 с кодировкой UTF-8 9349 , будет закодирован 4142004344E9 в файле ANSI )

Итак, хотя файлы с NUL символов являются , а не обычными в классических текстовых файлах , я полагаю, что эта ошибка требует создания проблемы .Что вы думаете об этом?

С уважением,

парень038

linux - Пакетное преобразование кодировки в файлы

Cygwin или GnuWin32 предоставляют инструменты Unix, такие как iconv и dos2unix unix2dos ). В Unix / Linux / Cygwin вы захотите использовать "windows-1252" в качестве кодировки вместо ANSI (см. Ниже). (Если вы не знаете, что ваша система использует кодовую страницу, отличную от 1252, в качестве кодовой страницы по умолчанию, и в этом случае вам нужно указать iconv правильную кодовую страницу для перевода.)

Преобразовать из одного ( -f ) в другой ( -t ) с помощью:

  $ iconv -f windows-1252 -t utf-8 infile> Outfile
  

Или в форме «найди все и победи»:

  ## это приведет к затиранию исходных файлов!
$ найти. -name '* .txt' -exec iconv --verbose -f windows-1252 -t utf-8 {} \> {} \;
  

Альтернативно:

  ## это приведет к затиранию исходных файлов!
$ найти. -name '* .txt' -exec iconv --verbose -f windows-1252 -t utf-8 -o {} {} \;
  

Этот вопрос задавали много раз на этом сайте, так что вот некоторая дополнительная информация об "ANSI".В ответе на связанный с этим вопрос CesarB упоминает:

Есть несколько кодировок, которые в Windows называются "ANSI". На самом деле ANSI - неправильное название. iconv не может угадать, что вы хотите.

Кодировка ANSI - это кодировка, используемая функциями «A» в Windows API (функции «W» используют UTF-16). Какой кодировке он соответствует, обычно зависит от языка вашей системы Windows. Наиболее распространенным является CP 1252 (также известный как Windows-1252). Итак, когда ваш редактор говорит ANSI, это означает «все, что функции API используют в качестве кодировки ANSI по умолчанию», которая является кодировкой по умолчанию, отличной от Unicode, используемой в вашей системе (и, следовательно, обычно той, которая используется для текстовых файлов).

Страница, на которую он ссылается, дает этот исторический лакомый кусочек (цитируется из Microsoft PDF) о происхождении CP 1252 и ISO-8859-1, другой часто используемой кодировки:

[...] это происходит из-за того, что кодовая страница Windows 1252 изначально была основана на проекте ANSI, который стал стандартом ISO 8859-1. Однако при добавлении кодовых точек к диапазону, зарезервированному для управляющих кодов в стандарте ISO, кодовая страница Windows 1252 и последующие кодовые страницы Windows, изначально основанные на серии ISO 8859-x, отклонялись от ISO.По сей день нередки случаи, когда сообщество разработчиков как внутри, так и за пределами Microsoft путает кодовую страницу 8859-1 с Windows 1252, а также видит «ANSI» или «A», используемые для обозначения поддержки кодовой страницы Windows. .

.
Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

© 2019 Штирлиц Сеть печатных салонов в Перми

Цифровая печать, цветное и черно-белое копирование документов, сканирование документов, ризография в Перми.