Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otv1.doc
Скачиваний:
41
Добавлен:
22.09.2019
Размер:
1.29 Mб
Скачать

13.Кодирование текстовых данных.

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

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

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

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

Если каждому символу алфавита сопоставить определенное целое число (например, порядковый номер), то с помощью двоичного кода можно кодировать и текстовую информацию. Восьми двоичных разрядов достаточно для кодирования 256 различных символов. Этого хватит, чтобы выразить различными комбинациями восьми битов все символы английского и русского языков, как строчные, так и прописные, а также знаки препинания, символы основных арифметических действий и некоторые общепринятые специальные символы, например символ «§».

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

Для английского языка, захватившего де-факто нишу международного средства общения, противоречия уже сняты. Институт стандартизации США (ANSI— American National Standard Institute) ввел в действие систему кодирования ANCII (American Standard Code for Information Interchange — стандартный код информационного обмена США). В системе ANCII закреплены две таблицы кодирования — базовая и расширенная. Базовая таблица закрепляет значения кодов от 0 до 127, а расширенная относится к символам с номерами от 128 до 255.

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

Начиная с кода 32 по код 127 размещены коды символов английского алфавита, знаков препинания, цифр, арифметических действий и некоторых вспомогательных символов. Базовая таблица кодировки ANCII Приведена в таблице 1.

Таблица 1. Базовая таблица кодировки ANCII

32 пробел

48

0

64

@

80

Р

96

112

Р

33 !

49

1

65

А

81

О

97

а

113

34

50

2

66

В

82

Я

98

Ь

114

г

35 #

51

3

67

С

83

5

99

с

115

3

36 $

52

4

68

84

т

100

а1

116

1

37 %

53

5

69

Е

85

II

101

е

117

и

38 &

54

6

70

Р

86

V

102

т

118

V

39

55

7

71

е

87

\Л/

103

д

119

\л/

40 (

56

8

72

н

88

X

104

п

120

X

41 )

57

9

73

I

89

V

105

121

У

42

58

74

^

90

2

106

\

122

2

43 +

59

;

75

к

91

[

107

к

123

{

44

60

<

70

I

92

\

108

1

124

|

4!)

61

77

м

93

1

109

П1

12!)

}

40

62

>

/II

N

94

1 10

П

1?0

4/ /

63

/II

9!)

1 1 1

О

\71

Аналогичные системы кодирования текстовых данных были разработаны и в других стропах. Так, например, в СССР в этой области действовала система кодирования КОИ-7 (код обмена информацией, семизначный). Однако поддержка производителей оборудования и программ вывела американский код ANCII на уровень международного стандарта, и национальным системам кодирования пришлось «отступить» во вторую, расширенную часть системы кодирования, определяющую значения кодов со 128 по 255. Отсутствие единого стандарта в этой области привело к множественности одновременно действующих кодировок. Только в России можно указать три действующих стандарта кодировки и еще два устаревших.

Так, например, кодировка символов русского языка, известная как кодировка Windows-1251, была введена «извне» — компанией Microsoft, но, учитывая широкое распространение операционных систем и других продуктов этой компании в России, она глубоко закрепилась и нашла широкое распространение (таблица 2). Эта кодировка используется на большинстве локальных компьютеров, работающих на платформе Windows.

Таблица 2. Кодировка Windows-1251

128

Ъ

144

Г)

160

176

192

А

208

Р

224

а

240

Р

129

Г

145

161

У

177

+

193

Б

209

С

225

б

241

с

130

146

162

У

178

I

194

В

210

Т

226

в

242

т

131

Г

147

163

179

I

195

Г

211

У

227

г

243

У

1 'Л2

п

148

164

п

180

г

196

Д

212

ф

228

д

244

Ф

133

149

165

г

181

Ц

197

Е

213

X

229

е

245

X

УМ

Т

150

-

166

I I

182

11

198

Ж

214

ц

230

ж

246

ц

13!)

151

167

§

183

199

3

215

ч

231

3

247

ч

13в

152

168

Ё

184

ё

200

И

216

ш

232

и

248

ш

13/

%0

153

ТМ

169

©

185

201

Й

217

щ

233

й

249

щ

130

154

170

е

186

е

202

К

218

ъ

234

к

250

ъ

139

<

155

>

171

«

187

»

203

Л

219

ы

235

л

251

ы

140

Нэ

156

Нэ

172

188

]

204

М

220

ь

236

м

252

ь

141

к

157

К

173

-

189

5

205

Н

221

э

237

н

253

э

142

ъ

158

Г)

174

®

190

5

206

О

222

ю

238

о

254

ю

143

и

159

М

175

I

191

У

207

п

223

я

239

п

255

я

Другая распространенная кодировка носит название КОИ-8 (код обмена информацией, восьмизначный) — ее происхождение относится ко временам действия Совета экономической Взаимопомощи государств Восточной Европы (таблица 3). Сегодня кодировка КОИ-8 имеет широкое распространение в компьютерных сетях на территории России и в российском секторе Интернета.

Международный стандарт, в котором предусмотрена кодировка символов русского алфавита, носит название кодировки ISO (International Standard Organization — Международный институт стандартизации). На практике данная кодировка используется редко (таблица 4).

На компьютерах, работающих и операционных системах MS-DOS, могут действовать еще две кодировки (кодировка ГОСТ и кодировка ГОСТ-альтернативная). Первая из них считалась устаревшей даже в первые годы появления персональной вычислительной техники, но вторая используется и по сей день (см. таблицу 5).

Таблица 3. Кодировка КОИ-8

'!)

144 !!!

160

176

Н

192

ю

208

п

224

Ю

240

II

:■')

I

145 1

161

Ё

177

I-

193

а

209

я

225

А

241

Я

30

I

146 1

162

г

178

н

194

б

210

Р

226

Б

242

1'

31

I

147 г

163

ё

179

Ё

195

ц

211

с

227

Ц

243

С

3?

I

148 ■

164

г

180

196

д

212

т

228

Д

244

1

33

I

149

165

г

181

н

197

е

213

У

229

Е

245

У

34

I

150 л[

166

1

182

т

198

Ф

214

ж

230

Ф

246

Ж

з:>

I

151 »

167

-,

183

т

199

г

215

в

231

Г

247

и

36

г

152 <

168

-|

184

т

200

X

216

ь

232

X

248

1,

3/

X-

153 >

169

1-

185

±

201

и

217

ы

233

и

249

ы

38

\

154

170

I-

186

л.

202

й

218

3

234

й

250

;|

ЗУ

т

155 ^

171

1

187

X

203

к

219

ш

235

к

251

III

40

а

156 *

172

188

-[.

204

л

220

э

236

л

252

0

4 I

157 2

173

189

-|-

205

м

221

щ

237

м

253

Щ

Л','

158 ■

174

^

190

■}•

206

н

222

ч

238

н

254

Ч

ИЗ

1

159 *

175

1-

191

ё

207

О

223

ъ

239

О

255

Ь

Таблица 4. Кодировка ISO

160

176

А

192

Р

208

а

224

Р

240

161

Ё

177

Б

193

С

209

б

225

с

241

ё

162

Ъ

178

В

194

т

210

в

226

т

242

Г)

163

Г

179

Г

195

У

211

г

227

У

243

<

164

е

180

Д

196

ф

212

Д

228

Ф

244

165

3

181

Е

197

X

213

е

229

X

245

166

I

182

Ж

198

ц

214

ж

230

Ц

246

I

В150 не определены

167

т

183

3

199

ч

215

3

231

ч

247

I

168

3

184

И

200

ш

216

и

232

ш

248

I

169

Лэ

185

Й

201

щ

217

й

233

щ

249

170

нь

186

К

202

ъ

218

к

234

ъ

250

п.

171

т.

187

Л

203

ы

219

л

235

ы

251

11

172

к

188

М

204

ь

220

м

236

ь

252

К

173

-

189

н

205

э

221

н

237

э

253

§

174

У

190

о

206

ю

222

о

238

ю

254

У

175

м

191

п

207

я

223

п

239

я

255

1,1

Таблица 5 ГОСТ-альтернативая кодировка

128

А

144

Р

160

а

176

192

208

X

224

р

240

129

Б

145

С

161

б

177

ш

193

Г

209

т

225

с

241

130

в

146

Т

162

в

178

1

194

т

210

т

226

т

242

131

г

147

У

163

г

179

1

195

\-

211

|_

227

У

243

132

д

148

Ф

164

Д

180

Н

196

212

228

Ф

244

133

Е

149

X

165

е

181

н

197

+

213

Г

229

X

245

134

ж

150

Ц

166

ж

182

■1

198

214

Г

230

ц

24(3

135

3

151

Ч

167

3

183

1

199

1-

215

+

231

ч

247

130

и

152

ш

168

и

184

1

200

1

216

+

232

ш

248

13/

и

153

Щ

169

й

185

н

201

Г

217

^

233

и;

240

13И

к

154

ъ

170

к

186

1

202

218

г

234

ь

:>!>()

13!)

л

155

ы

171

л

1Н/

1

203

т

219

235

ы

:"■ 1

МО

м

156

ь

172

м

ШН

Л

204

1-

220

?36

1.

:">;

М1

II

157

э

173

II

III!)

1

205

221

Г

::и

;)

и:>

о

!Г>8

га

1/4

и

|'К1

1

206

+

???

1

::\\\

К)

•.■■и

мз

II

159

я

1 /5

1'Н

]

207

■1

:ч!)

я

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

Универсальная система кодирования текстовых данных

Если проанализировать организационные трудности, связанные с созданием единой системы кодирования текстовых данных, то можно прийти к выводу, что они вызваны ограниченным набором кодов (256). В то же время очевидно, что если, например, кодировать символы не восьмиразрядными двоичными числами, а числами с большим количеством разрядов, то и диапазон возможных значений кодов станет намного больше. Такая система, основанная на 16-разрядном кодировании символов, получила название универсальной — UNICODE. Шестнадцать разрядов позволяют обеспечить уникальные коды для 65536 различных символов — этого поля достаточно для размещения в одной таблице символов большинства языков планеты.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]