Разное

Таблиця символів windows 1251: Таблица кодов символов Windows-1251

Содержание

Таблица кодов символов Windows-1251



Windows-1251 — набор символов и кодировка, являющаяся стандартной 8-битной кодировкой для всех русских версий Microsoft Windows. Данная кодировка пользуется довольно большой популярностью в восточно-европейских странах. Windows-1251 выгодно отличается от других 8-битных кириллических кодировок (таких как CP866, KOI8-R и ISO 8859-5) наличием практически всех символов, использующихся в традиционной русской типографике для обычного текста (отсутствует только знак ударения). Кириллические символы идут в алфавитном порядке.
Windows-1251 также содержит все символы для близких к русскому языку языков: белорусского, украинского, сербского, македонского и болгарского.
На практике этого оказалось достаточно, чтобы кодировка Windows-1251 закрепилась в интернете вплоть до распространения UTF-8.

Таблица кодов символов Windows-1251

DecHexСимвол DecHexСимвол
00000NOP 12880Ђ
00101SOH 12981Ѓ
00202STX 13082
00303ETX 13183ѓ
00404EOT 13284
00505ENQ 13385
00606ACK 13486
00707BEL 13587
00808BS 13688
00909TAB 13789
0100ALF 1388AЉ
0110BVT 1398B
0120CFF 1408CЊ
0130DCR 1418DЌ
0140ESO 1428EЋ
0150FSI 1438FЏ
01610DLE 14490ђ
01711DC1 14591
01812DC2 14692
01913DC3 14793
02014DC4 14894
02115NAK 14995
02216SYN 15096
02317ETB 15197
02418CAN 15298
02519EM 15399
0261ASUB 1549Aљ
0271BESC 1559B
0281CFS 1569Cњ
0291DGS 1579Dќ
0301ERS 1589Eћ
0311FUS 1599Fџ
03220SP 160A0 
03321! 161A1Ў
03422« 162A2ў
03523# 163A3Ћ
03624$ 164A4¤
03725% 165A5Ґ
03826& 166A6¦
03927 167A7§
04028( 168A8Ё
04129) 169A9©
0422A* 170AAЄ
0432B+ 171AB«
0442C, 172AC¬
0452D 173AD­
0462E. 174AE®
0472F/ 175AFЇ
048300 176B0°
049311 177B1±
050322 178B2І
051333 179B3і
052344 180B4ґ
053355 181B5µ
054366 182B6
055377 183B7·
056388 184B8ё
057399 185B9
0583A: 186BAє
0593B; 187BB»
0603C< 188BCј
0613D= 189BDЅ
0623E> 190BEѕ
0633F? 191BFї
06440@ 192C0А
06541A 193C1Б
06642B 194C2В
06743C 195C3Г
06844D 196C4Д
06945E 197C5Е
07046F 198C6Ж
07147G 199C7З
07248H 200C8И
07349I 201C9Й
0744AJ 202CAК
0754BK 203CBЛ
0764CL 204CCМ
0774DM 205CDН
0784EN 206CEО
0794FO 207CFП
08050P 208D0Р
08151Q 209D1С
08252R 210D2Т
08353S 211D3У
08454T 212D4Ф
08555U 213D5Х
08656V 214D6Ц
08757W 215D7Ч
08858X 216D8Ш
08959Y 217D9Щ
0905AZ 218DAЪ
0915B[ 219DBЫ
0925C\ 220DCЬ
0935D] 221DDЭ
0945E^ 222DEЮ
0955F_ 223DFЯ
09660` 224E0а
09761a 225E1б
09862b 226E2в
09963c 227E3г
10064d 228E4д
10165e 229E5е
10266f 230E6ж
10367g 231E7з
10468h 232E8и
10569i 233E9й
1066Aj 234EAк
1076Bk 235EBл
1086Cl 236ECм
1096Dm 237EDн
1106En 238EEо
1116Fo 239EFп
11270p 240F0р
11371q 241F1с
11472r 242F2т
11573s 243F3у
11674t 244F4ф
11775u 245F5х
11876v 246F6ц
11977w 247F7ч
12078x 248F8ш
12179y 249F9щ
1227Az 250FAъ
1237B{ 251FBы
1247C| 252FCь
1257D} 253FDэ
1267E~ 254FEю
1277FDEL 255FFя

Описание специальных (управляющих) символов

Первоначально управляющие символы таблицы ASCII (диапазон 00-31, плюс 127) были разработаны для того, чтобы управлять устройствами аппаратных средств, таких как телетайп, ввод данных на перфоленту и др.
Управляющие символы (кроме горизонтальной табуляции, перевода строки и возврата каретки) не используются в HTML-документах.

Cпециальные (управляющие) символы

КодОписание
NUL, 00Null, пустой
SOH, 01Start Of Heading, начало заголовка
STX, 02Start of TeXt, начало текста
ETX, 03End of TeXt, конец текста
EOT, 04End of Transmission, конец передачи
ENQ, 05Enquire. Прошу подтверждения
ACK, 06Acknowledgement. Подтверждаю
BEL, 07Bell, звонок
BS, 08Backspace, возврат на один символ назад
TAB, 09Tab, горизонтальная табуляция
LF, 0ALine Feed, перевод строки
Сейчас в большинстве языков программирования обозначается как \n
VT, 0BVertical Tab, вертикальная табуляция
FF, 0CForm Feed, прогон страницы, новая страница
CR, 0DCarriage Return, возврат каретки
Сейчас в большинстве языков программирования обозначается как \r
SO, 0EShift Out, изменить цвет красящей ленты в печатающем устройстве
SI, 0FShift In, вернуть цвет красящей ленты в печатающем устройстве обратно
DLE, 10Data Link Escape, переключение канала на передачу данных
DC1, 11
DC2, 12
DC3, 13
DC4, 14
Device Control, символы управления устройствами
NAK, 15Negative Acknowledgment, не подтверждаю
SYN, 16Synchronization. Символ синхронизации
ETB, 17End of Text Block, конец текстового блока
CAN, 18Cancel, отмена переданного ранее
EM, 19End of Medium, конец носителя данных
SUB, 1ASubstitute, подставить. Ставится на месте символа, значение которого было потеряно или испорчено при передаче
ESC, 1BEscape Управляющая последовательность
FS, 1CFile Separator, разделитель файлов
GS, 1DGroup Separator, разделитель групп
RS, 1ERecord Separator, разделитель записей
US, 1FUnit Separator, разделитель юнитов
DEL, 7FDelete, стереть последний символ.

Смотрите также:

URL коды символов ACSII

URL коды символов UTF-8 диапазон от U+0400 до U+04FF

HTML Кодирование URL

Таблица кодов символов кирилицы UTF-8



Таблица Windows-1251

Windows-1251 (cp1251) — это стандартная 8-битная кодировка, разработанная компанией Microsoft. Она содержит практически все символы, которые Вы можете встретить на стандартной русской клавиатуре. Также 1251 имеет символы для таких языков, как белорусский, украинский, болгарский и сербский.

DEC

HEX

СИМВ

DEC

HEX

СИМВ

DEC

HEX

СИМВ

000

00

NOP

086

56

V

171

AB

«

001

01

SOH

087

57

W

172

AC

¬

002

02

STX

088

58

X

173

AD

003

03

ETX

089

59

Y

174

AE

®

004

04

EOT

090

5A

Z

175

AF

Ї

005

05

ENQ

091

5B

[

176

B0

°

006

06

ACK

092

5C

\

177

B1

±

007

07

BEL

093

5D

]

178

B2

І

008

08

BS

094

5E

^

179

B3

і

009

09

Табуляция

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


Похожие записи:

Таблица ASCII (кодировка Windows-1251)

Таблица ASCII (кодировка Windows-1251)

(0)(1)(2)(3)(4)(5)(6)(7)(8)(9)(10)(11)(12)(13)(14)(15)(16)
(17)(18)(19)(20)(21)(22)(23)(24)(25)(26)(27)(28)(29)(30)(31) (32)!(33)
«(34)#(35)$(36)%(37)&(38)(39)((40))(41)*(42)+(43),(44)(45). (46)/(47)0(48)1(49)2(50)
3(51)4(52)5(53)6(54)7(55)8(56)9(57):(58);(59)(60)=(61)>(62)?(63)@(64)A(65)B(66)C(67)
D(68)E(69)F(70)G(71)H(72)I(73)J(74)K(75)L(76)M(77)N(78)O(79)P(80)Q(81)R(82)S(83)T(84)
U(85)V(86)W(87)X(88)Y(89)Z(90)[(91)\ (92)](93)^(94)_(95)`(96)a(97)b(98)c(99)d(100)e(101)
f(102)g(103)h(104)i(105)j(106)k(107)l(108)m(109)n(110)o(111)p(112)q(113)r(114)s(115)t(116)u(117)v(118)
w(119)x(120)y(121)z(122){(123)|(124)}(125)~(126)(127)Ђ(128)Ѓ(129)(130)ѓ(131)(132)(133)(134)(135)
(136)(137)Љ(138)(139)Њ(140)Ќ(141)Ћ(142)Џ(143)ђ(144)(145)(146)(147)(148)(149)(150)(151)˜(152)
(153)љ(154)(155)њ(156)ќ(157)ћ(158)џ(159) (160)Ў(161)ў(162)Ј(163)¤(164)Ґ(165)¦(166)§(167)Ё(168)©(169)
Є(170)«(171)¬(172)­(173)®(174)Ї(175)°(176)±(177)І(178)і(179)ґ(180)µ(181)(182)·(183)ё(184)(185)є(186)
»(187)ј(188)Ѕ(189)ѕ(190)ї(191)А(192)Б(193)В(194)Г(195)Д(196)Е(197)Ж(198)З(199)И(200)Й(201)К(202)Л(203)
М(204)Н(205)О(206)П(207)Р(208)С(209)Т(210)У(211)Ф(212)Х(213)Ц(214)Ч(215)Ш(216)Щ(217)Ъ(218)Ы(219)Ь(220)
Э(221)Ю(222)Я(223)а(224)б(225)в(226)г(227)д(228)е(229)ж(230)з(231)и(232)й(233)к(234)л(235)м(236)н(237)
о(238)п(239)р(240)с(241)т(242)у(243)ф(244)х(245)ц(246)ч(247)ш(248)щ(249)ъ(250)ы(251)ь(252)э(253)ю(254)
я(255)(256)(257)(258)(259)(260)(261)(262)(263)(264)(265)(266)(267)(268)(269)(270)(271)

— версия для печати


Определение
ASCII (англ. American Standard Code for Information Interchange) — американская стандартная таблица для кодирования печатных символов и некоторых специальных кодов.
Если у вас есть мысли по поводу данной страницы или предложение по созданию математической (см. раздел «Математика») вспомогательной памятки, мы обязательно рассмотрим ваше предложение. Просто воспользуйтесь обратной связью.

© Школяр. Математика (при поддержке «Ветвистого древа») 2009—2016

Кодировка текста ASCII (Windows 1251, CP866, KOI8-R) и Юникод (UTF 8, 16, 32) — как исправить проблему с кракозябрами

Сегодня мы поговорим о том, откуда берутся кракозябры на сайте и в программах, какие кодировки текста существуют и какие из них следует использовать. Подробно рассмотрим историю их развития, начиная с базовой ASCII, а также ее расширенных версий CP866, KOI8-R, Windows 1251 и заканчивая современными кодировками консорциума Юникод UTF 16 и 8.

Оглавление:
Кому-то эти сведения могут показаться излишними, но знали бы вы, сколько мне приходит вопросов именно касаемо вылезших кракозябров (нечитаемого набора символов). Теперь у меня будет возможность отсылать всех к тексту этой статьи и самостоятельно отыскивать свои косяки. Ну что же, приготовьтесь впитывать информацию и постарайтесь следить за ходом повествования.

ASCII — базовая кодировка текста для латиницы

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

Но все же отправной точкой для развития современных кодировок текстов стоит считать знаменитую ASCII (American Standard Code for Information Interchange, которая по-русски обычно произносится как «аски»). Она описывает первые 128 символов из наиболее часто используемых англоязычными пользователями — латинские буквы, арабские цифры и знаки препинания.

Еще в эти 128 знаков, описанных в ASCII, попадали некоторые служебные символы вроде скобок, решеток, звездочек и т. п. Собственно, вы сами можете увидеть их:
Именно эти 128 символов из первоначального варианта ASCII стали стандартом, и в любой другой кодировке вы их обязательно встретите и стоять они будут именно в таком порядке.

Но дело в том, что с помощью одного байта информации можно закодировать не 128, а целых 256 различных значений (двойка в степени восемь равняется 256), поэтому вслед за базовой версией Аски появился целый ряд расширенных кодировок ASCII, в которых можно было кроме 128 основных знаков закодировать еще и символы национальной кодировки (например, русской).

Тут, наверное, стоит еще немного сказать о системах счисления, которые используются при описании. Во-первых, как вы все знаете, компьютер работает только с числами в двоичной системе, а именно с нулями и единицами («булева алгебра», если кто проходил в институте или в школе). Один байт состоит из восьми бит, каждый из которых представляет собой двойку в степени, начиная с нулевой, и до двойки в седьмой:

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

В нашем примере это получается 1 (2 в степени ноль) плюс 8 (два в степени 3), плюс 32 (двойка в пятой степени), плюс 64 (в шестой), плюс 128 (в седьмой). Итого получается 233 в десятичной системе счисления. Как видите, все очень просто.

Но если вы присмотритесь к таблице с символами ASCII, то увидите, что они представлены в шестнадцатеричной кодировке. Например, «звездочка» соответствует в Аски шестнадцатеричному числу 2A. Наверное, вам известно, что в шестнадцатеричной системе счисления используются кроме арабских цифр еще и латинские буквы от A (означает десять) до F (означает пятнадцать).

Ну так вот, для перевода двоичного числа в шестнадцатеричное прибегают к следующему простому способу. Каждый байт информации разбивают на две части по четыре бита. Т.е. в каждой половинке байта двоичным кодом можно закодировать только шестнадцать значений (два в четвертой степени), что можно легко представить шестнадцатеричным числом.

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

Расширенные версии Аски — кодировки CP866 и KOI8-R с псевдографикой

Итак, мы с вами начали говорить про ASCII, которая являлась как бы отправной точкой для развития всех современных кодировок (Windows 1251, юникод, UTF 8).

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

Тут нужно будет еще раз отвлечься, чтобы пояснить — зачем вообще нужны кодировки текстов и почему это так важно. Символы на экране вашего компьютера формируются на основе двух вещей — наборов векторных форм (представлений) всевозможных знаков (они находятся в файлах со шрифтами, которые установлены на вашем компьютере) и кода, который позволяет выдернуть из этого набора векторных форм (файла шрифта) именно тот символ, который нужно будет вставить в нужное место.

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

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

Значит, чтобы закодировать любой нужный нам символ (например, из национального алфавита), нужно выполнить два условия: векторная форма этого знака должна быть в используемом шрифте, и этот символ можно было бы закодировать в расширенных кодировках ASCII в один байт. Поэтому таких вариантов существует целая куча. Только лишь для кодирования символов русского языка существует несколько разновидностей расширенной Аски.

Например, изначально появилась CP866, в которой была возможность использовать символы русского алфавита, и она являлась расширенной версией ASCII.

То есть, ее верхняя часть полностью совпадала с базовой версией Аски (128 символов латиницы, цифр и еще всякой лабуды), которая представлена на приведенном чуть выше скриншоте, а вот уже нижняя часть таблицы с кодировкой CP866 имела указанный на скриншоте чуть ниже вид и позволяла закодировать еще 128 знаков (русские буквы и всякая там псевдографика):

Видите, в правом столбце цифры начинаются с 8, т.к. числа с 0 до 7 относятся к базовой части ASCII (см. первый скриншот). Таким образом, у кириллической буквы «М» в CP866 будет код 9С (она находится на пересечении соответствующих строки с 9 и столбца с цифрой С в шестнадцатеричной системе счисления), который можно записать в одном байте информации, и при наличии подходящего шрифта с русскими символами эта буква без проблем отобразится в тексте.

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

CP866 распространяла компания IBM, но кроме этого для символов русского языка были разработаны еще ряд кодировок, например, к этому же типу (расширенных ASCII) можно отнести KOI8-R:
Принцип ее работы остался тот же самый, что и у описанной чуть ранее CP866 — каждый символ текста кодируется одним единственным байтом. На скриншоте показана вторая половина таблицы KOI8-R, т.к. первая половина полностью соответствует базовой Аски, которая показана на первом скриншоте в этой статье.

Среди особенностей кодировки KOI8-R можно отметить то, что кириллические буквы в ее таблице идут не в алфавитном порядке, как это сделали в CP866.

Если посмотрите на самый первый скриншот (базовой части, которая входит во все расширенные кодировки), то заметите, что в KOI8-R русские буквы расположены в тех же ячейках таблицы, что и созвучные им буквы латинского алфавита из первой части таблицы. Это было сделано для удобства перехода с русских символов на латинские путем отбрасывания всего одного бита (два в седьмой степени или 128).

Windows 1251 — современная версия ASCII и почему вылезают кракозябры

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

Они относились к так называемым ANSI кодировкам, которые были разработаны американским институтом стандартизации. В просторечии еще использовалось название кириллица для варианта с поддержкой русского языка. Примером такой может служить Windows 1251.

Она выгодно отличалась от используемых ранее CP866 и KOI8-R тем, что место символов псевдографики в ней заняли недостающие символы русской типографики (окромя знака ударения), а также символы, используемые в близких к русскому славянских языках (украинскому, белорусскому и т.д.):
Из-за такого обилия кодировок русского языка, у производителей шрифтов и производителей программного обеспечения постоянно возникала головная боль, а у нас с вам, уважаемые читатели, зачастую вылезали те самые пресловутые кракозябры, когда происходила путаница с используемой в тексте версией.

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

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

Допустим, если символы, закодированные с помощью CP866, попробовать отобразить, используя кодовую таблицу Windows 1251, то эти самые кракозябры (бессмысленный набор знаков) и вылезут, полностью заменив собой текст сообщения.
Аналогичная ситуация очень часто возникает при создании и настройке сайтов, форумов или блогов, когда текст с русскими символами по ошибке сохраняется не в той кодировке, которая используется на сайте по умолчанию, или же не в том текстовом редакторе, который добавляет в код отсебятину не видимую невооруженным глазом.

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

Юникод (Unicode) — универсальные кодировки UTF 8, 16 и 32

Эти тысячи знаков языковой группы юго-восточной Азии никак невозможно было описать в одном байте информации, который выделялся для кодирования символов в расширенных версиях ASCII. В результате был создан консорциум под названием Юникод (Unicode — Unicode Consortium) при сотрудничестве многих лидеров IT индустрии (те, кто производит софт, кто кодирует железо, кто создает шрифты), которые были заинтересованы в появлении универсальной кодировки текста.

Первой вариацией, вышедшей под эгидой консорциума Юникод, была UTF 32. Цифра в названии кодировки означает количество бит, которое используется для кодирования одного символа. 32 бита составляют 4 байта информации, которые понадобятся для кодирования одного единственного знака в новой универсальной кодировке UTF.

В результате чего один и тот же файл с текстом, закодированный в расширенной версии ASCII и в UTF-32, в последнем случае будет иметь размер (весить) в четыре раза больше. Это плохо, но зато теперь у нас появилась возможность закодировать с помощью ЮТФ число знаков, равное двум в тридцать второй степени (миллиарды символов, которые покроют любое реально необходимое значение с колоссальным запасом).

Но многим странам с языками европейской группы такое огромное количество знаков использовать в кодировке вовсе и не было необходимости, однако при задействовании UTF-32 они ни за что ни про что получали четырехкратное увеличение веса текстовых документов, а в результате и увеличение объема интернет-трафика и объема хранимых данных. Это много, и такое расточительство себе никто не мог позволить.

В результате развития Юникода появилась UTF-16, которая получилась настолько удачной, что была принята по умолчанию как базовое пространство для всех символов, которые у нас используются. Она использует два байта для кодирования одного знака. Давайте посмотрим, как это дело выглядит.

В операционной системе Windows вы можете пройти по пути «Пуск» — «Программы» — «Стандартные» — «Служебные» — «Таблица символов». В результате откроется таблица с векторными формами всех установленных у вас в системе шрифтов. Если вы выберете в «Дополнительных параметрах» набор знаков Юникод, сможете увидеть для каждого шрифта в отдельности весь ассортимент входящих в него символов.

Кстати, щелкнув по любому из них, вы сможете увидеть его двухбайтовый код в формате UTF-16, состоящий из четырех шестнадцатеричных цифр:
Сколько символов можно закодировать в UTF-16 с помощью 16 бит? 65 536 (два в степени шестнадцать), и именно это число было принято за базовое пространство в Юникоде. Помимо этого существуют способы закодировать с помощью нее и около двух миллионов знаков, но ограничились расширенным пространством в миллион символов текста.

Но даже эта удачная версия кодировки Юникода не принесла особого удовлетворения тем, кто писал, допустим, программы только на английском языке, ибо у них после перехода от расширенной версии ASCII к UTF-16, вес документов увеличивался в два раза (один байт на один символ в Аски и два байта на тот же самый символ в ЮТФ-16).

Вот именно для удовлетворения всех и вся в консорциуме Unicode было решено придумать кодировку переменной длины. Ее назвали UTF-8. Несмотря на восьмерку в названии, она действительно имеет переменную длину, т.е. каждый символ текста может быть закодирован в последовательность длиной от одного до шести байт.

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

Что примечательно, в случае кодирования только латиницы, даже те программы, которые не понимают Юникод, все равно прочитают то, что закодировано в ЮТФ-8. То есть, базовая часть Аски просто перешла в это детище консорциума Unicode.

Кириллические же знаки в UTF-8 кодируются в два байта, а, например, грузинские — в три байта. Консорциум Юникод после создания UTF 16 и 8 решил основную проблему — теперь у нас в шрифтах существует единое кодовое пространство. И теперь их производителям остается только исходя из своих сил и возможностей заполнять его векторными формами символов текста.

В приведенной чуть выше «Таблице символов» видно, что разные шрифты поддерживают разное количество знаков. Некоторые насыщенные символами Юникода шрифты могут весить очень прилично. Но зато теперь они отличаются не тем, что они созданы для разных кодировок, а тем, что производитель шрифта заполнил или не заполнил единое кодовое пространство теми или иными векторными формами до конца.

Кракозябры вместо русских букв — как исправить

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

Для редактирования и создания текстовых файлов лично я использую очень хороший, на мой взгляд, Html и PHP редактор Notepad++. Впрочем, он может подсвечивать синтаксис еще доброй сотни языков программирования и разметки, а также имеет возможность расширения с помощью плагинов. Читайте подробный обзор этой замечательной программы по приведенной ссылке.

В верхнем меню Notepad++ есть пункт «Кодировки», где у вас будет возможность преобразовать уже имеющийся вариант в тот, который используется на вашем сайте по умолчанию:
В случае сайта на Joomla 1.5 и выше, а также в случае блога на WordPress следует во избежании появления кракозябров выбирать вариант UTF 8 без BOM. А что такое приставка BOM?

Дело в том, что когда разрабатывали кодировку ЮТФ-16, зачем-то решили прикрутить к ней такую вещь, как возможность записывать код символа, как в прямой последовательности (например, 0A15), так и в обратной (150A). А для того, чтобы программы понимали, в какой именно последовательности читать коды, и был придуман BOM (Byte Order Mark или, другими словами, сигнатура), которая выражалась в добавлении трех дополнительных байтов в самое начало документов.

В кодировке UTF-8 никаких BOM предусмотрено в консорциуме Юникод не было и поэтому добавление сигнатуры (этих самых пресловутых дополнительных трех байтов в начало документа) некоторым программам просто-напросто мешает читать код. Поэтому мы всегда при сохранении файлов в ЮТФ должны выбирать вариант без BOM (без сигнатуры). Таким образом, вы заранее обезопасите себя от вылезания кракозябров.

Что примечательно, некоторые программы в Windows не умеют этого делать (не умеют сохранять текст в ЮТФ-8 без BOM), например, все тот же пресловутый Блокнот Windows. Он сохраняет документ в UTF-8, но все равно добавляет в его начало сигнатуру (три дополнительных байта). Причем эти байты будут всегда одни и те же — читать код в прямой последовательности. Но на серверах из-за этой мелочи может возникнуть проблема — вылезут кракозябры.

Поэтому ни в коем случае не пользуйтесь обычным блокнотом Windows для редактирования документов вашего сайта, если не хотите появления кракозябров. Лучшим и наиболее простым вариантом я считаю уже упомянутый редактор Notepad++, который практически не имеет недостатков и состоит из одних лишь достоинств.

В Notepad ++ при выборе кодировки у вас будет возможность преобразовать текст в кодировку UCS-2, которая по своей сути очень близка к стандарту Юникод. Также в Нотепаде можно будет закодировать текст в ANSI, т.е. применительно к русскому языку это будет уже описанная нами чуть выше Windows 1251. Откуда берется эта информация?

Она прописана в реестре вашей операционной системы Windows — какую кодировку выбирать в случае ANSI, какую выбирать в случае OEM (для русского языка это будет CP866). Если вы установите на своем компьютере другой язык по умолчанию, то и эти кодировки будут заменены на аналогичные из разряда ANSI или OEM для того самого языка.

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

Вообще, во всех языках гипертекстовой разметки кроме Html используется специальное объявление xml, в котором указывается кодировка текста.


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

Прежде, чем начать разбирать код, браузер узнает, какая версия используется и как именно нужно интерпретировать коды символов этого языка. Но что примечательно, если вы сохраняете документ в принятом по умолчанию юникоде, это объявление xml можно будет опустить (кодировка будет считаться UTF-8, если нет BOM или ЮТФ-16, если BOM есть).

В случае же документа языка Html для указания кодировки используется элемент Meta, который прописывается между открывающим и закрывающим тегом Head:


<head>
...
<meta charset="utf-8">
...
</head>

Эта запись довольно сильно отличается от принятой в стандарте в Html 4.01, но полностью соответствует стандарту Html 5, и она будет стопроцентно правильно понята любыми используемыми на текущий момент браузерами.

По идее элемент Meta с указание кодировки Html документа лучше будет ставить как можно выше в шапке документа, чтобы на момент встречи в тексте первого знака не из базовой ANSI (которые правильно прочитаются всегда и в любой вариации) браузер уже должен иметь информацию о том, как интерпретировать коды этих символов.

Ссылка на первоисточник: Кодировка текста ASCII (Windows 1251, CP866, KOI8-R) и Юникод (UTF 8, 16, 32) — как исправить проблему с кракозябрами

✔️ ❤️ ★ Таблица символов Юникода

Юникод

Юникод (по-английски Unicode) — это стандарт кодирования символов. Проще говоря, это таблица соответствия текстовых знаков (цифр, букв, элементов пунктуации) двоичным кодам. Компьютер понимает только последовательность нулей и единиц. Чтобы он знал, что именно должен отобразить на экране, необходимо присвоить каждому символу свой уникальный номер. В восьмидесятых, знаки кодировали одним байтом, то есть восемью битами (каждый бит это 0 или 1). Таким образом получалось, что одна таблица (она же кодировка или набор) может вместить только 256 знаков. Этого может не хватить даже для одного языка. Поэтому, появилось много разных кодировок, путаница с которыми часто приводила к тому, что на экране вместо читаемого текста появлялись какие-то странные кракозябры. Требовался единый стандарт, которым и стал Юникод. Самая используемая кодировка — UTF-8 (Unicode Transformation Format) для изображения символа задействует от 1 до 4 байт.

Символы

Символы в таблицах Юникода пронумерованы шестнадцатеричными числами. Например, кириллическая заглавная буква М обозначена U+041C. Это значит, что она стоит на пересечении строки 041 и столбца С. Её можно просто скопировать и потом вставить куда-либо. Чтобы не рыться в многокилометровом списке следует воспользоваться поиском. Зайдя на страницу символа, вы увидите его номер в Юникоде и способ начертания в разных шрифтах. В строку поиска можно вбить и сам знак, даже если вместо него отрисовывается квадратик, хотя бы для того, чтобы узнать, что это было. Ещё, на этом сайте есть специальные (и не специальные — случайные) наборы однотипных значков, собранные из разных разделов, для удобства их использования.

Стандарт Юникод — международный. Он включает знаки почти всех письменностей мира. В том числе и тех, которые уже не применяются. Египетские иероглифы, германские руны, письменность майя, клинопись и алфавиты древних государств. Представлены и обозначения мер и весов, нотных грамот, математических понятий.

Сам консорциум Юникода не изобретает новых символов. В таблицы добавляются те значки, которые находят своё применение в обществе. Например, активно использовался в течении шести лет прежде чем был добавлен в Юникод. Пиктограммы эмодзи (смайлики) тоже сначала получили широкое применение в Япониии прежде чем были включены в кодировку. А вот товарные знаки, и логотипы компаний не добавляются принципиально. Даже такие распространённые как яблоко Apple или флаг Windows. На сегодняшний день, в версии 8.0 закодировано около 120 тысяч символов.

Таблица символов ASCII

Список из 256 символов и их коды в ASCII.

1

Управляющие символы



































DECOCTHEXBINСимволEscape послед.HTML кодОписание
00000x0000000000NUL\0&#000;Нулевой байт
10010x0100000001SOH&#001;Начало заголовка
20020x0200000010STX&#002;Начало текста
30030x0300000011ETX&#003;Конец «текста»
40040x0400000100EOT&#004;конец передачи
50050x0500000101ENQ&#005;«Прошу подтверждения!»
60060x0600000110ACK&#006;«Подтверждаю!»
70070x0700000111BEL\a&#007;Звуковой сигнал – звонок
80100x0800001000BS\b&#008;Возврат на один символ (BACKSPACE)
90110x0900001001TAB\t&#009;Табуляция
100120x0A00001010LF\n&#010;Перевод строки
110130x0B00001011VT\v&#011;Вертикальная табуляция
120140x0C00001100FF\f&#012;Прогон страницы, новая страница
130150x0D00001101CR\r&#013;Возврат каретки
140160x0E00001110SO&#014;Переключиться на другую ленту (кодировку)
150170x0F00001111SI&#015;Переключиться на исходную ленту (кодировку)
160200x1000010000DLE&#016;Экранирование канала данных
170210x1100010001DC1&#017;1-й символ управления устройством
180220x1200010010DC2&#018;2-й символ управления устройством
190230x1300010011DC3&#019;3-й символ управления устройством
200240x1400010100DC4&#020;4-й символ управления устройством
210250x1500010101NAK&#021;«Не подтверждаю!»
220260x1600010110SYN&#022;Символ для синхронизации
230270x1700010111ETB&#023;Конец текстового блока
240300x1800011000CAN&#024;Отмена
250310x1900011001EM&#025;Конец носителя
260320x1A00011010SUB&#026;Подставить
270330x1B00011011ESC\e&#027;Escape (Расширение)
280340x1C00011100FS&#028;Разделитель файлов
290350x1D00011101GS&#029;Разделитель групп
300360x1E00011110RS&#030;Разделитель записей
310370x1F00011111US&#031;Разделитель юнитов
1271770x7F01111111Delete&#127;Символ для удаления (на перфолентах)

2

Печатные символы

































































































DECOCTHEXBINСимволHTML кодМнемоника
320400x2000100000Пробел&#32;
330410x2100100001!&#33;
340420x2200100010«&#34;&quot;
350430x2300100011#&#35;
360440x2400100100$&#36;
370450x2500100101%&#37;
380460x2600100110&&#38;&amp;
390470x2700100111&#39;&apos;
400500x2800101000(&#40;
410510x2900101001)&#41;
420520x2A00101010*&#42;
430530x2B00101011+&#43;
440540x2C00101100,&#44;
450550x2D00101101&#45;
460560x2E00101110.&#46;
470570x2F00101111/&#47;
480600x30001100000&#48;
490610x31001100011&#49;
500620x32001100102&#50;
510630x33001100113&#51;
520640x34001101004&#52;
530650x35001101015&#53;
540660x36001101106&#54;
550670x37001101117&#55;
560700x38001110008&#56;
570710x39001110019&#57;
580720x3A00111010:&#58;
590730x3B00111011;&#59;
600740x3C00111100<&#60;&lt;
610750x3D00111101=&#61;
620760x3E00111110>&#62;&gt;
630770x3F00111111?&#63;
641000x4001000000@&#64;
651010x4101000001A&#65;
661020x4201000010B&#66;
671030x4301000011C&#67;
681040x4401000100D&#68;
691050x4501000101E&#69;
701060x4601000110F&#70;
711070x4701000111G&#71;
721100x4801001000H&#72;
731110x4901001001I&#73;
741120x4A01001010J&#74;
751130x4B01001011K&#75;
761140x4C01001100L&#76;
771150x4D01001101M&#77;
781160x4E01001110N&#78;
791170x4F01001111O&#79;
801200x5001010000P&#80;
811210x5101010001Q&#81;
821220x5201010010R&#82;
831230x5301010011S&#83;
841240x5401010100T&#84;
851250x5501010101U&#85;
861260x5601010110V&#86;
871270x5701010111W&#87;
881300x5801011000X&#88;
891310x5901011001Y&#89;
901320x5A01011010Z&#90;
911330x5B01011011[&#91;
921340x5C01011100\&#92;
931350x5D01011101]&#93;
941360x5E01011110^&#94;
951370x5F01011111_&#95;
961400x6001100000`&#96;
971410x6101100001a&#97;
981420x6201100010b&#98;
991430x6301100011c&#99;
1001440x6401100100d&#100;
1011450x6501100101e&#101;
1021460x6601100110f&#102;
1031470x6701100111g&#103;
1041500x6801101000h&#104;
1051510x6901101001i&#105;
1061520x6A01101010j&#106;
1071530x6B01101011k&#107;
1081540x6C01101100l&#108;
1091550x6D01101101m&#109;
1101560x6E01101110n&#110;
1111570x6F01101111o&#111;
1121600x7001110000p&#112;
1131610x7101110001q&#113;
1141620x7201110010r&#114;
1151630x7301110011s&#115;
1161640x7401110100t&#116;
1171650x7501110101u&#117;
1181660x7601110110v&#118;
1191670x7701110111w&#119;
1201700x7801111000x&#120;
1211710x7901111001y&#121;
1221720x7A01111010z&#122;
1231730x7B01111011{&#123;
1241740x7C01111100|&#124;
1251750x7D01111101}&#125;
1261760x7E01111110~&#126;

3

Расширенные символы ASCII Win-1251 кириллица


































































































































DECOCTHEXBINСимволHTML кодМнемоника
1282000x8010000000Ђ&#128;
1292010x8110000001Ѓ&#129;
1302020x8210000010&#130;&sbquo;
1312030x8310000011ѓ&#131;
1322040x8410000100&#132;&bdquo;
1332050x8510000101&#133;&hellip;
1342060x8610000110&#134;&dagger;
1352070x8710000111&#135;&Dagger;
1362100x8810001000&#136;&euro;
1372110x8910001001&#137;&permil;
1382120x8A10001010Љ&#138;
1392130x8B10001011&#139;&lsaquo;
1402140x8C10001100Њ&#140;
1412150x8D10001101Ќ&#141;
1422160x8E10001110Ћ&#142;
1432170x8F10001111Џ&#143;
1442200x9010010000Ђ&#144;
1452210x9110010001&#145;&lsquo;
1462220x9210010010&#146;&rsquo;
1472230x9310010011&#147;&ldquo;
1482240x9410010100&#148;&rdquo;
1492250x9510010101&#149;&bull;
1502260x9610010110&#150;&ndash;
1512270x9710010111&#151;&mdash;
1522300x9810011000Начало строки&#152;
1532310x9910011001&#153;&trade;
1542320x9A10011010љ&#154;
1552330x9B10011011&#155;&rsaquo;
1562340x9C10011100њ&#156;
1572350x9D10011101ќ&#157;
1582360x9E10011110ћ&#158;
1592370x9F10011111џ&#159;
1602400xA010100000Неразрывный пробел&#160;&nbsp;
1612410xA110100001Ў&#161;
1622420xA210100010ў&#162;
1632430xA310100011Ј&#163;
1642440xA410100100¤&#164;&curren;
1652450xA510100101Ґ&#165;
1662460xA610100110¦&#166;&brvbar;
1672470xA710100111§&#167;&sect;
1682500xA810101000Ё&#168;
1692510xA910101001©&#169;&copy;
1702520xAA10101010Є&#170;
1712530xAB10101011«&#171;&laquo;
1722540xAC10101100¬&#172;&not;
1732550xAD10101101Мягкий перенос&#173;&shy;
1742560xAE10101110®&#174;&reg;
1752570xAF10101111Ї&#175;
1762600xB010110000°&#176;&deg;
1772610xB110110001±&#177;&plusmn;
1782620xB210110010І&#178;
1792630xB310110011і&#179;
1802640xB410110100ґ&#180;
1812650xB510110101µ&#181;&micro;
1822660xB610110110&#182;&para;
1832670xB710110111·&#183;&middot;
1842700xB810111000ё&#184;
1852710xB910111001&#185;
1862720xBA10111010є&#186;
1872730xBB10111011»&#187;&raquo;
1882740xBC10111100ј&#188;
1892750xBD10111101Ѕ&#189;
1902760xBE10111110ѕ&#190;
1912770xBF10111111ї&#191;
1923000xC011000000А&#192;
1933010xC111000001Б&#193;
1943020xC211000010В&#194;
1953030xC311000011Г&#195;
1963040xC411000100Д&#196;
1973050xC511000101Е&#197;
1983060xC611000110Ж&#198;
1993070xC711000111З&#199;
2003100xC811001000И&#200;
2013110xC911001001Й&#201;
2023120xCA11001010К&#202;
2033130xCB11001011Л&#203;
2043140xCC11001100М&#204;
2053150xCD11001101Н&#205;
2063160xCE11001110О&#206;
2073170xCF11001111П&#207;
2083200xD011010000Р&#208;
2093210xD111010001С&#209;
2103220xD211010010Т&#210;
2113230xD311010011У&#211;
2123240xD411010100Ф&#212;
2133250xD511010101Х&#213;
2143260xD611010110Ц&#214;
2153270xD711010111Ч&#215;
2163300xD811011000Ш&#216;
2173310xD911011001Щ&#217;
2183320xDA11011010Ъ&#218;
2193330xDB11011011Ы&#219;
2203340xDC11011100Ь&#220;
2213350xDD11011101Э&#221;
2223360xDE11011110Ю&#222;
2233370xDF11011111Я&#223;
2243400xE011100000а&#224;
2253410xE111100001б&#225;
2263420xE211100010в&#226;
2273430xE311100011г&#227;
2283440xE411100100д&#228;
2293450xE511100101е&#229;
2303460xE611100110ж&#230;
2313470xE711100111з&#231;
2323500xE811101000и&#232;
2333510xE911101001й&#233;
2343520xEA11101010к&#234;
2353530xEB11101011л&#235;
2363540xEC11101100м&#236;
2373550xED11101101н&#237;
2383560xEE11101110о&#238;
2393570xEF11101111п&#239;
2403600xF011110000р&#240;
2413610xF111110001с&#241;
2423620xF211110010т&#242;
2433630xF311110011у&#243;
2443640xF411110100ф&#244;
2453650xF511110101х&#245;
2463660xF611110110ц&#246;
2473670xF711110111ч&#247;
2483700xF811111000ш&#248;
2493710xF911111001щ&#249;
2503720xFA11111010ъ&#250;
2513730xFB11111011ы&#251;
2523740xFC11111100ь&#252;
2533750xFD11111101э&#253;
2543760xFE11111110ю&#254;
2553770xFF11111111я&#255;

Таблицы кодировок ASCII, CP1251 (windows1251), ISO-8859-5 — Микроконтроллеры для всех

Таблица ASCII

Таблица ASCII (American standard code for information interchange) является мировым стандартом для кодирования букв английского алфавита, популярных спец символов (! $ # % & и т.д.) и некоторых непечатных символов (например, возврат каретки 0x0D и перенос строки 0х0А).

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

Таблица CP1251 (windows-1251)

Эта кодировочная таблица может называться или CP1251 или Windows-1251 Это стандарт кодирования кириллических символов в операционных системах windows с русскоязычным интерфейсом.

Первая часть этой таблицы (до байта 0x7F) повторяет таблицу ASCII, а вторая часть (от 0x80 до 0xFF) кодирует кириллические символы в алфавитном порядке.

CP1251 (windows-1251)

Таблица IS0-8859-5

Эта кодировка применяется в дисплеях Nextion для кодирования кириллических символов.

Стоит обратить внимание, что в данной таблице кириллические символы расположены в алфавитном порядке и сдвинуты ровно на 16 байт по сравнению с кодировочной таблицей windows-1251.

Кодировка UTF-8
(Unicode Transformation Format)

Очень распространенный формат кодирования символов, позволяющий кодировать символы переменным количеством байт.

Например, если для кодирования номера символа требуется 21 бит, то используется 4 байта для кодировки. Если для кодирования достаточно 11 бит, то используют 2 байта. А если номер символа может быть закодирован 7 битами, то используется один байт.

Кодировка UTF-8

Все ASCII символы в кодировке UTF8 закодированы без изменений, то есть 1 байтом, как в стандартной таблице ASCII.

А вот остальные символы закодированы количеством байт от 2 до 4.

Кириллические символы закодированы двумя байтами.

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
KOI8R КОИ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
ЛАТИН 8 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 не поддерживается в качестве сервера
кодировка
KOI8R 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
ЛАТИН 8 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 TO 'значение'; 

    Также вы можете использовать стандартный синтаксис 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
Формат преобразования) определяется здесь.

Модуль ngx_http_charset_module

Модуль ngx_http_charset_module

Модуль ngx_http_charset_module добавляет указанный
charset в поле заголовка ответа Content-Type.
Кроме того, модуль может конвертировать данные из одной кодировки в другую,
с некоторыми ограничениями:

  • конвертация осуществляется в одну сторону — от сервера к клиенту,
  • могут быть преобразованы только однобайтовые кодировки
  • или однобайтовые кодировки в / из UTF-8.
Пример конфигурации
включить conf / koi-win;

кодировка windows-1251;
source_charset koi8-r;
 
Директивы
Синтаксис: кодировка кодировка | от ;
По умолчанию:
 charset off; 
Контекст: http , server , location , if in location

Добавляет указанную кодировку в Content-Type.
поле заголовка ответа.Если эта кодировка отличается от указанной
в директиве source_charset выполняется преобразование.

Параметр off отменяет добавление кодировки.
в поле заголовка ответа Content-Type.

Кодировку можно определить с помощью переменной:

charset $ charset;
 

В таком случае должны присутствовать все возможные значения переменной.
в конфигурации хотя бы один раз в виде
charset_map, charset или
source_charset директивы.Для utf-8 , windows-1251 и
koi8-r кодировки, достаточно включить файлы
conf / koi-win , conf / koi-utf и
conf / win-utf в конфигурацию.
Для других кодировок просто создание фиктивной таблицы преобразования работает,
Например:

charset_map iso-8859-5 _ {}
 

Кроме того, кодировку можно установить в
Поле заголовка ответа «X-Accel-Charset».
Эту возможность можно отключить с помощью
proxy_ignore_headers,
fastcgi_ignore_headers,
uwsgi_ignore_headers,
scgi_ignore_headers,
а также
grpc_ignore_headers
директивы.

Синтаксис: charset_map charset1 charset2 {...}
По умолчанию:

Контекст: http

Описывает таблицу преобразования из одной кодировки в другую.Таблица обратного преобразования строится с использованием тех же данных.
Коды символов даны в шестнадцатеричном формате.
Отсутствующие символы в диапазоне 80-FF заменяются на «? ».
При преобразовании из UTF-8 символы отсутствуют в однобайтовой кодировке.
заменяются на « & # XXXX; ».

Пример:

charset_map koi8-r windows-1251 {
    C0 FE; # маленький ю
    C1 E0; # маленький а
    C2 E1; # маленький б
    C3 F6; # small ts
    ...
}
 

При описании таблицы преобразования в UTF-8 коды для кодировки UTF-8 должны
быть приведенным во втором столбце, например:

charset_map koi8-r utf-8 {
    C0 D18E; # маленький ю
    C1 D0B0; # маленький а
    C2 D0B1; # маленький б
    C3 D186; # small ts
    ...
}
 

Полные таблицы преобразования с koi8-r на
windows-1251 , а от koi8-r и
windows-1251 до utf-8
представлены в файлах раздачи conf / koi-win ,
conf / koi-utf и conf / win-utf .

Синтаксис: charset_types mime-type ...;
По умолчанию:
 charset_types текст / HTML-текст / XML-текст / обычный текст / vnd.wap.wml
приложение / javascript приложение / rss + xml; 
Контекст: http , сервер , расположение

Эта директива появилась в версии 0.7.9.

Включает обработку модуля в ответах с указанными типами MIME
в дополнение к « text / html ».
Специальное значение « * » соответствует любому типу MIME (0.8.29).

До версии 1.5.4 использовалось « application / x-javascript ».
в качестве типа MIME по умолчанию вместо « application / javascript ».

Синтаксис: override_charset на | от ;
По умолчанию:
 override_charset off; 
Контекст: http , server , location , if in location

Определяет, нужно ли выполнять преобразование ответов
получено от прокси-сервера или сервера FastCGI / uwsgi / SCGI / gRPC
когда ответы уже содержат кодировку в «Content-Type»
поле заголовка ответа.Если преобразование включено, кодировка указана в полученном
ответ используется как кодировка источника.

Следует отметить, что если ответ получен в подзапросе
затем преобразование из кодировки ответа в кодировку основного запроса
выполняется всегда, независимо от значения override_charset
установка директивы.

Синтаксис: source_charset charset ;
По умолчанию:

Контекст: http , server , location , if in location

Определяет исходную кодировку ответа.Если эта кодировка отличается от указанной
в директиве charset выполняется преобразование.

Таблица сравнения символов

в Windows-1252, ISO-8859-1, ISO-8859-15

Кодировки символов ISO-8859-1, ISO-8859-15 и Windows-1252 очень похожи, и их легко спутать. Это приводит к нескольким типичным проблемам.
Следующая диаграмма показывает различия между этими кодировками и полезна для отладки связанных проблем.

ISO-8859-1 vs.Окна-1252

ISO-8859-1 (также называемый Latin-1) идентичен Windows-1252 (также называемый CP1252), за исключением кодовых точек 128-159 (0x80-0x9F).
ISO-8859-1 назначает несколько управляющих кодов в этом диапазоне. Windows-1252 имеет несколько символов, пунктуацию, арифметику и бизнес.
символы, присвоенные этим кодовым точкам.

Типичные проблемы
  • Неверная маркировка текста, закодированного в Windows-1252 как ISO-8859-1, а затем преобразование из ISO-8859-1 в Unicode или другие кодировки приводит к появлению символов
    в диапазоне 128-159 теряться.Они преобразуются, как если бы они были управляющими кодами, и обычно отображаются в виде белого пространства, специального вопросительного знака,
    или квадрат, показывающий 4 шестнадцатеричных цифры кодовой точки.
  • Использование шрифта ISO-8859-1, который не имеет правильных глифов для символов Windows-1252
    приведет к неправильному отображению символов.

  • HTML и XML используют кодовые точки Unicode в качестве значений в ссылках на числовые символы (NCR). Ссылки на числовые символы — это escape-символы
    записывается как & # dddd; или & # xhhhh; где десятичные или шестнадцатеричные значения являются кодовыми точками Unicode.Поскольку первые 256 символов в Юникоде
    идентичны символам в ISO-8859-1, люди привыкают использовать знакомый им кодовый знак для создания NCR.
    Однако для символов в диапазоне 128–159 в Windows-1252 это неправильные значения. Например, евро (€)
    в кодовой точке 0x80 в Windows-1252, но в Unicode это U + 20AC.
    & # x80; является NCR для контрольного кода и не будет отображаться как евро. Правильный NCR — & # x20AC ;.

В сравнительной таблице ниже показаны кодовые точки Unicode, связанные с Windows-1252.
символы в диапазоне 128-159.

ISO-8859-1 в сравнении с ISO-8859-15

Эти 2 кодировки идентичны, за исключением 8 кодовых точек, что вызывает путаницу между ними, а также с Windows-1252.
Для получения дополнительной информации о ISO-8859-15,
см. Сравнение ISO-8859-1 и ISO-8859-15.

Таблица сравнения

Вот символы в диапазоне 128-159 в Windows 1252 с их кодовыми точками Unicode,
Значения байтов UTF-8 и кодовые точки ISO-8859-15, если они отличаются от ISO-8859-1.

Примечание по терминологии:

  • NCR = Ссылка на цифровые символы
  • CER = Ссылка на сущность символа
  • CP1252 = Windows-1252
Сравнение символов в Windows-1252, ISO-8859-1, ISO-8859-15
Кодовый пункт UTF-8 байт NCR * Персонаж CER * или NCR * Имя персонажа
CP1252 * ISO 8859-15 Юникод
(декабрь) (шестигранник) (шестигранник) (шестигранник) # 1 # 2 # 3 (декабрь) (шестигранник)
128 80 A4 20AC E2 82 AC & # 8364; и евро; Знак евро
129 81 НЕ НАЗНАЧЕН
130 82 201A E2 80 9A & # 8218; & sbquo; Одиночный малый 9 кавычки
131 83 192 C6 92 & # 402; ƒ & # x192; Строчная латинская буква F с крючком
132 84 201E E2 80 9E & # 8222; & bdquo; Двойной Low-9 Котировальный знак
133 85 2026 E2 80 A6 & # 8230; & hellip; Горизонтальное многоточие
134 86 2020 E2 80 A0 & # 8224; & кинжал; Кинжал
135 87 2021 E2 80 A1 & # 8225; и кинжал; Двойной кинжал
136 88 2C6 CB 86 & # 710; ˆ & circ; Буква-модификатор Circumflex Accent
137 89 2030 E2 80 B0 & # 8240; & permil; Знак промилле
138 8A A6 160 C5 A0 & # 352; Š и Скарон; Латинская заглавная буква S с кароном
139 2039 E2 80 B9 & # 8249; & lsaquo; Кавычка с одинарным левым углом
140 8C г. до н.э. 152 C5 92 & # 338; Œ и OElig; Лигатура латинской заглавной буквы OE
141 8D НЕ НАЗНАЧЕН
142 8E B4 17D C5 BD & # 381; Ž & # x17D; Латинская заглавная буква Z с кароном
143 8F НЕ НАЗНАЧЕН
144 90 НЕ НАЗНАЧЕН
145 91 2018 E2 80 98 & # 8216; & lsquo; Одинарный кавычка левый
146 92 2019 E2 80 99 & # 8217; & rsquo; Одинарный кавычка правый
147 93 201C E2 80 9C & # 8220; & ldquo; Двойные кавычки слева
148 94 201D E2 80 9D & # 8221; & rdquo; Двойные кавычки справа
149 95 2022 E2 80 A2 & # 8226; и бык; Пуля
150 96 2013 E2 80 93 & # 8211; & ndash; En Dash
151 97 2014 E2 80 94 & # 8212; & mdash; Em Dash
152 98 2DC CB 9C & # 732; ˜ & тильда; Маленькая тильда
153 99 2122 E2 84 A2 & # 8482; и торговля; Знак товарного знака
154 9A A8 161 C5 A1 & # 353; š & scaron; Строчная латинская буква S с кароном
155 203A E2 80 BA & # 8250; & rsaquo; Одинарный угловой кавычочный знак, указывающий вправо
156 9C BD 153 C5 93 & # 339; œ & oelig; Строчная латинская лигатура OE
157 9D НЕ НАЗНАЧЕН
158 9E B8 17E C5 BE & # 382; ž & # x17E; Строчная латинская буква Z с кароном
159 9F BE 178 C5 B8 & # 376; Ÿ и Yuml; Латинская заглавная буква Y с диэрезисом

Дополнительные ссылки

Авторские права © 2010, 2011 Tex Texin.Все права защищены.

вернуться наверх

Кодовая страница Windows 1251

Кодовая страница Windows 1251

Эта страница содержит таблицу кодовой страницы Microsoft Windows 1251 для русского и
некоторые другие языки, написанные кириллицей. CP1251
символы включены буквально в скобки слева от каждой строки.
Если вы сохраните эту страницу, у вас будет таблица CP1251, которую вы можете использовать для тестирования вашего
конфигурация набора символов эмулятора терминала.


Кодовая страница Microsoft Windows 1251
char dec col / row oct hex описание
[] 128 08/00 200 80 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА DJE
[] 129 08/01 201 81 Кирилическая прописная буква GJE
[] 130 08/02 202 82 НИЗКАЯ 9 ОДИНОЧНАЯ ЦИТАТА
[] 131 08/03 203 83 Кирилическая строчная буква GJE
[] 132 08/04 204 84 НИЗКАЯ 9 ДВОЙНАЯ ЦИТАТА
[] 133 08/05 205 85 ЭЛЛИПСИС
[] 134 08/06 206 86 КИНЖАЛ
[] 135 08/07 207 87 ДВОЙНОЙ КИНЖАЛ
[] 136 08/08 210 88 ЕВРО ЗНАК
[] 137 08/09 211 89 ЗА МИЛ ЗНАК
[] 138 08/10 212 8A ЗАГЛАВНАЯ БУКВА LJE
[] 139 08/11 213 8B ЛЕВЫЙ КРОНШТЕЙН ОДИНОЧНОЙ ЦИТАТЫ
[] 140 08/12 214 8C КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА NJE
[] 141 08/13 215 8D КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА KJE
[] 142 08/14 216 8E КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА TSHE
[] 143 15.08 217 8F КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА ДЖЕ
[] 144 09/00 220 90 КИРИЛИЧЕСКАЯ СТРОЧНАЯ БУКВА DJE
[] 145 09/01 221 91 ВЫСОКАЯ 6 ОДИНОЧНАЯ ЦИТАТА
[] 146 09/02 222 92 ВЫСОКАЯ 9 ОДИНОЧНАЯ ЦИТАТА
[] 147 09/03 223 93 ВЫСОКАЯ 6 ДВОЙНАЯ ЦИТАТА
[] 148 09/04 224 94 ВЫСОКАЯ 9 ДВОЙНАЯ ЦИТАТА
[] 149 09/05 225 95 БОЛЬШАЯ ЦЕНТРАЛЬНАЯ ТОЧКА
[] 150 09/06 226 96 RU ТИП
[] 151 07.09 227 97 EM DASH
[] 152 09/08 230 98 (НЕ ОПРЕДЕЛЕННО)
[] 153 09/09 231 99 ТОВАРНЫЙ ЗНАК
[] 154 09/10 232 9A СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА LJE
[] 155 09/11 233 9B ПРАВЫЙ КРОНШТЕЙН ДЛЯ ОДИНОЧНОЙ ЦИТАТЫ
[] 156 09/12 234 9C КИРИЛИЧЕСКАЯ СТРОЧНАЯ БУКВА NJE
[] 157 09/13 235 9D КИРИЛИЧЕСКАЯ СТРОЧНАЯ БУКВА KJE
[] 158 14.09 236 9E КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА TSHE
[] 159 15.09 237 9F КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА ДЖЕ
[] 160 10/00 240 A0 НЕПРЕРЫВНОЕ ПРОСТРАНСТВО
[] 161 10/01 241 A1 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА КОРОТКАЯ U
[] 162 10/02 242 A2 КИРИЛИЧЕСКАЯ СТРОЧНАЯ БУКВА КОРОТКАЯ U
[] 163 10/03 243 A3 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА JE
[] 164 10/04 244 ЗНАК ВАЛЮТЫ A4
[] 165 10/05 245 A5 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА GHE С ПОВОРОТОМ
[] 166 10/06 246 A6 СЛОМАННЫЙ БАР
[] 167 10/07 247 A7 ЗНАК ПАРАГРАФА
[] 168 10/08 250 A8 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА IO
[] 169 10/09 251 A9 ЗНАК АВТОРСКОГО ПРАВА
[] 170 10/10 252 AA КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА УКРАИНСКИЙ IE
[] 171 10/11 253 AB ЛЕВЫЙ УГЛОВОЙ ЦИТАТНЫЙ ЗНАК
[] 172 10/12 254 AC NOT SIGN
[] 173 10/13 255 AD МЯГКИЙ ДЕФИС
[] 174 10/14 256 AE ЗНАК ЗАРЕГИСТРИРОВАННОЙ ТОРГОВОЙ МАРКИ
[] 175 10/15 257 AF КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА YI
[] 176 11/00 260 B0 ЗНАК, КОЛЬЦО ВЫШЕ
[] 177 11/01 261 B1 ЗНАК ПЛЮС-МИНУС
[] 178 11/02 262 B2 Кирилическая прописная буква БЕЛОРУССИЯ-УКРАИНСКИЙ ЯЗЫК I
[] 179 11/03 263 B3 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА БЕЛОРУССИЯ-УКРАИНСКИЙ ЯЗЫК I
[] 180 11/04 264 B4 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА GHE С ПОВОРОТОМ
[] 181 11/05 265 B5 МИКРОЗНАК
[] 182 06/11 266 B6 ЗНАК ПИЛКРОУ
[] 183 07/11 267 B7 СРЕДНЯЯ ТОЧКА
[] 184 08/11 270 B8 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА IO
[] 185 11/09 271 B9 ЗНАК NUMERO
[] 186 11/10 272 BA СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА УКРАИНСКИЙ IE
[] 187 11/11 273 BB ЦИТАТНЫЙ ЗНАК ПРАВЫЙ УГОЛ
[] 188 11/12 274 до н.э. Кирилическая строчная буква JE.
[] 189 11/13 275 BD КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА DZE
[] 190 14/11 276 БЫТЬ СТРОЧНОЙ КИРИЛИЧЕСКОЙ БУКВОЙ DZE
[] 191 15/11 277 BF КИРИЛИЧЕСКАЯ СТРОЧНАЯ БУКВА YI
[] 192 12/00 300 C0 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА A
[] 193 01/12 301 C1 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА БЫТЬ
[] 194 02/12 302 C2 ЗАГЛАВНАЯ БУКВА VE
[] 195 12/03 303 C3 ЗАГЛАВНАЯ БУКВА GHE
[] 196 12/04 304 C4 ЗАГЛАВНАЯ БУКВА DE
[] 197 12/05 305 C5 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА IE
[] 198 12/06 306 C6 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА ZHE
[] 199 12/07 307 C7 ЗАГЛАВНАЯ БУКВА ZE
[] 200 12/08 310 C8 ЗАГЛАВНАЯ БУКВА I
[] 201 12/09 311 C9 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА КОРОТКАЯ I
[] 202 12/10 312 CA КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА KA
[] 203 12/11 313 CB КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА EL
[] 204 12/12 314 CC КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА EM
[] 205 12/13 315 CD КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА EN
[] 206 12/14 316 CE КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА O
[] 207 15/12 317 CF КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА PE
[] 208 13/00 320 D0 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА ER
[] 209 13/01 321 D1 ЗАГЛАВНАЯ БУКВА ES
[] 210 13/02 322 D2 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА TE
[] 211 13/03 323 D3 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА U
[] 212 13/04 324 D4 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА EF
[] 213 13/05 325 D5 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА HA
[] 214 13/06 326 D6 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА TSE
[] 215 13/07 327 D7 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА CHE
[] 216 13/08 330 D8 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА SHA
[] 217 13/09 331 D9 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА ЩА
[] 218 13/10 332 DA КИРИЛЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА ЖЕСТКИЙ ЗНАК
[] 219 13/11 333 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА ДБ ЕРУ
[] 220 13/12 334 DC КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА МЯГКИЙ ЗНАК
[] 221 13/13 335 DD КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА E
[] 222 13/14 336 КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА YU
[] 223 13/15 337 DF КИРИЛИЧЕСКАЯ ЗАГЛАВНАЯ БУКВА YA
[] 224 14/00 340 E0 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА A
[] 225 14/01 341 E1 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА BE
[] 226 14/02 342 E2 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА VE
[] 227 14/03 343 E3 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА GHE
[] 228 14/04 344 E4 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА DE
[] 229 14/05 345 E5 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА IE
[] 230 14/06 346 E6 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА ZHE
[] 231 14/07 347 E7 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА ZE
[] 232 14/08 350 E8 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА I
[] 233 14/09 351 E9 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА КОРОТКАЯ I
[] 234 14/10 352 EA СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА KA
[] 235 14/11 353 EB КИРИЛИЧЕСКАЯ СТРОЧНАЯ БУКВА EL
[] 236 14/12 354 EC КИРИЛИЧЕСКАЯ СТРОЧНАЯ БУКВА EM
[] 237 14/13 355 ED Кирилическая строчная буква EN
[] 238 14/14 356 EE СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА O
[] 239 14/15 357 EF КИРИЛИЧЕСКАЯ СТРОЧНАЯ БУКВА PE
[] 240 15/00 360 F0 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА ER
[] 241 15/01 361 F1 КИРИЛИЧЕСКАЯ СТРОЧНАЯ БУКВА ES
[] 242 15/02 362 F2 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА TE
[] 243 15/03 363 F3 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА U
[] 244 15/04 364 F4 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА EF
[] 245 15/05 365 F5 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА HA
[] 246 15/06 366 F6 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА TSE
[] 247 15/07 367 F7 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА CHE
[] 248 15/08 370 F8 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА CHA
[] 249 15/09 371 F9 СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА ЩА
[] 250 15/10 372 FA КИРИЛЛИЧЕСКАЯ СТРОЧНАЯ БУКВА ЖЕСТКИЙ ЗНАК
[] 251 15/11 373 FB КИРИЛИЧЕСКАЯ СТРОЧНАЯ БУКВА YERU
[] 252 15/12 374 FC КИРИЛИЧЕСКАЯ СТРОЧНАЯ БУКВА МЯГКИЙ ЗНАК
[] 253 15/13 375 FD СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА E
[] 254 15/14 376 FE СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА YU
[] 255 15/15 377 FF СТРОЧНАЯ КИРИЛИЧЕСКАЯ БУКВА YA
 

Франк да Круз,
Проект Кермит,
Колумбийский университет,
Март 2003 г.

i18n: списки наборов символов

i18n: списки наборов символов

Интернационализация

Предупреждение: Эта страница больше не поддерживается, и содержащаяся на ней информация устарела и неверна!

Вместо этого вы можете попробовать перейти по следующей ссылке:

Наборы символов, поддерживаемые популярными веб-приложениями (необходимо пересмотреть, чтобы отсеять незарегистрированный материал)

Tango Creator,
Tango browser 3.0
(Алис
Технологии)
Netscape Navigator 3.0 / 4.0
(Netscape)
Microsoft Internet Explorer 5
(Microsoft)
Арабский
iso-8859-6 / asmo-708 × ×
x-mac-арабский ×
окна-1256 × ×
Балтика
iso-8859-4 ×
окна-1257 ×
Центральноевропейская
iso-8859-2 / latin2 × × ×
x-mac-ce × ¹ ×
окна-1250 × × ×
Китайский упрощенный
euc-cn ×
гб2312 × × ×
Гц-ГБ-2312 × × ×
x-mac-chinesesimp ×
сп-936 ×
Китайский традиционный
большой5 × × ×
x-mac-chinesetrad ×
СП-950 ×
cp-932 ×
euc-tw ×
Кириллица
iso-8859-5 × × ×
кои8-р × × ×
кои8 × ×
x-mac-кириллица × ¹ ×
окна-1251 × × ×
Греческий
iso-8859-7 × × ×
x-mac-греческий × ¹ ×
окна-1253 × × ×
Еврейский
iso-8859-8 * × ×
iso-8859-8-i × ×
x-mac-hebrew ×
окна-1255 × ×
Исландский
x-mac исландский ×
Японский
euc-jp × × ×
iso-2022-jp × × ×
x-mac-японский ×
shift_jis × × ×
Корейский
ks_c_5601-1987 / ksc5601 × × ×
euc-kr × ×
iso-2022-kr × × ×
x-mac-корейский ×
Латиница 9
iso-8859-15 / latin9 ×
Мальтийский
iso-8859-3 / latin3 ×
Тайский
окна-874 / тис-620 × ×
Турецкий
iso-8859-9 / latin5 × ×
x-mac-турецкий × ¹ ×
окна-1254 ×
Юникод
utf-7 × × ×
utf-8 × × ×
iso-10646-ucs-2 × × ² ×
us-ascii × × ×
Вьетнамский
окна-1258 ×
Западноевропейская
iso-8859-1 / latin1 × × ×
x-mac-roman × ¹
Macintosh ×
окна-1252 × ×
Другое
isiri-3342 ×

¹ = версия для Macintosh.² = только Navigator 4.0. * = запрещено в HTML 4.0 и
новее.

(Эта таблица не является официальной. Она может быть неверной. Ее цель — просто указать наиболее широко поддерживаемые кодировки.) Для Microsoft см.
также собственная (более длинная) таблица Microsoft.

Другие браузеры

Опера 3.21
Opera 3.21 не может переключаться между кодировками. Вы можете установить одну кодировку в диалоговом окне настроек.
Рысь 2,7
Lynx распознает кодировку, но может отображать документы только в кодировке, совместимой с кодировкой терминала, на котором она запущена.

Мартин Дюрст, ведущий специалист I18N
Веб-мастер
Последнее обновление $ Дата:
21.12.2001 08:33:46 $

Инструмент кодирования / декодирования. Анализируйте проблемы и ошибки кодировки символов.

Что такое кодовая страница?

Кодовая страница — это еще одно название для кодировки символов. Он состоит из таблицы значений
который описывает набор символов для определенного языка.

Что такое кодировка символов?

Кодировка символов — это процесс кодирования набора символов в соответствии с системой кодирования.Этот процесс обычно объединяет числа с символами для кодирования информации, которая может использоваться компьютером.

Зачем нужно кодировать символы?

Поскольку компьютеры могут интерпретировать только необработанные нули и единицы (например, 01100110), слова и предложения необходимо кодировать при вводе информации в компьютер. Символы в этих словах и предложениях сгруппированы в набор символов, который компьютер может распознать.

Что такое кодировки символов?

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

Типы кодировок символов

Существует множество кодировок, которые можно использовать для кодирования или декодирования строки символов, включая UTF-8, ASCII и ISO 9959-1.

Примеры популярных кодировок символов:

  • ASCII: Американский стандартный код для обмена информацией
  • ANSI: Американский национальный институт стандартов
  • Unicode (внутренние текстовые коды, используемые операционными системами)
  • UTF -8 (формат преобразования Unicode, в котором для представления символов используется 1 байт)
  • UTF-16 (формат преобразования Unicode, который использует 2 байта для представления символов)
  • UTF-32 (формат преобразования Unicode, который использует 4 байта для представления символов)

Хотя это, безусловно, популярные кодировки, которые используются, бывают случаи, когда строки кода кодируются кодировками, которые не так широко используются, например x-IA5-Norgwegian или DOS-720.Это может вызвать путаницу и возможные ошибки, поэтому важно понимать, как уменьшить эти ошибки, предварительно моделируя их с помощью инструмента кодирования / декодирования символов String Functions.

Как использовать инструмент кодирования / декодирования символов

Чтобы использовать инструмент кодирования / декодирования символов String Functions, начните с ввода строки символов в текстовое поле. Затем выберите из раскрывающихся меню, какую систему кодирования и декодирования вы хотите использовать для моделирования.

Посмотрите наш индекс кодировки символов

Для просмотра таблиц кодировки от одной кодировки к другой используйте наш индекс таблицы кодировки символов.

Политика конфиденциальности
Карта сайта

Руководство пользователя Глава 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%>

<%

Почта.Кодировка = «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.

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

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

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






<%
‘изменить на адрес вашего собственного 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»)
Mail.AddAddress Request («Кому»)

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

‘тело сообщения
Mail.Body = Request («Body»)

‘Параметры UTF-8
Почта.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

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» Кириллица
«ISO-8859-6» Арабский
«ISO-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 — корейский
«BIG5» Традиционный китайский Windows
«GB2312»
«китайский»
Китайский упрощенный
«HZ-GB-2312» Упрощенный китайский HZ
«EUC-JP» EUC — Японский
«X-EUC-TW» EUC — традиционный китайский

.

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

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