Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Вопросы начинающих программистов
Перезагрузить страницу В чём разница между 7-битной кодировкой(английской) и 16-битной кодировка UTF-16
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
AOZhgibesov AOZhgibesov вне форума
Новичок
 
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 13.09.2011
Exclamation В чём разница между 7-битной кодировкой(английской) и 16-битной кодировка UTF-16 - 13.09.2011, 18:22

Я заинтересовался историей создания смс. При 7 - битной кодировке, т.е. на английском языке, можно писать сообщения, количество символов которых равно 160 символов, а на русском языке, т.е. при использовании 16 - битной можно только 70.
Я попробывал разобраться глубже
В английском алфавите 26 букв, а в русском 33, следовательно, мощность английского алфавита 32 символа, следовательно на каждый символ приходится 5 бит. Мощность русского 64 символа, следовательно, на один символ приходится 6 бит. Разница на один символ всего 1 бит. Следовательно, русская кодировка должна иметь 8-битную систему вместо 16. Помогите выяснить почему так
Ответить с цитированием
  (#2 (permalink)) Старый
Odin_KG Odin_KG вне форума
Member
 
Сообщений: 956
Сказал(а) спасибо: 0
Поблагодарили 17 раз(а) в 16 сообщениях
Регистрация: 28.01.2007
По умолчанию 13.09.2011, 21:07

В 7-битной кодировке максимум влезает 128 цифр (от 0 до 127). Создается обманчивое впечатление, что этого хватает на алфавит выше крыши. Однако буквы кодируются в 2-х видах: обычные и заглавные. Кроме того, существует цифры от 0 до 9 и еще куча спецсимволов типа запятые, и знаки вопроса. Первые 32 символа вообще не используются в кодировке в привычном виде - кодировка начинается с символа "пробел", который соответствует коду 32. Короче получается так, что русский язык в 7 бит уже не влезает. Наличие 8-ого бита удваивает количество символов в кодировке, т.е. уже влезает максималное число 255. Однако на все языки мира этого опять не хватает, поэтому символы от 128 до 255 имеют сменное значение, которое зависит от кодовой страницы, которую можно менять. Например, в windows для русского языка используется кодовая страница 1251, что означает, что символы выше 128 будут относится к русскому языку.

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



Количество символов никак с кодировками вообще не связано - это операторы понавыдумывали ограничений, чтобы большие тексты не отправляли по СМС, а разбивали их на несколько частей и платили отдельно за каждую часть. Правда, соглашусь, что размер символов в 16-битной кодировке больше, но реально это ни на что не виляет сейчас, так что обычный коммерческий ход для вытреханий денег из пользователей, а всё это обоснование насчет кодировок, которое они может и где-то вывешивают, полнейшая чушь. Вот проверьте, сколько одно изображение занимает места и сколько текст занимает. Исходя из такой разницы в размере, MMS вообще отправить было бы невозможно по причине большой дороговизны.
Ответить с цитированием
  (#3 (permalink)) Старый
Jonano Jonano вне форума
Специалист
 
Аватар для Jonano
 
Сообщений: 3,541
Сказал(а) спасибо: 2
Поблагодарили 14 раз(а) в 14 сообщениях
Регистрация: 19.04.2005
По умолчанию 14.09.2011, 14:23

Надо заметить, у MMS отдельная технология отправки, там через GPRS идёт передача.
Ответить с цитированием
  (#4 (permalink)) Старый
Rius Rius вне форума
Программист
 
Аватар для Rius
 
Сообщений: 7,399
Сказал(а) спасибо: 22
Поблагодарили 937 раз(а) в 921 сообщениях
Регистрация: 27.08.2004
Адрес: Russian Federation
По умолчанию 14.09.2011, 15:11

Цитата:
Сообщение от Odin_KG Посмотреть сообщение
Честно говоря, мне кажется, что 16 бит всё же недостаточно, чтобы любой символ вместить, так как у китайцев этих иероглифов дофига просто, но возможно я сам что-то недопонимаю.
Вообще хватает, т.к. недостающие символы можно составлять из нескольких частей, имеющихся в таблице - суррогатные пары. Из-за чего, кстати, символ не всегда занимает 2 байта.

В utf-8 возможных кодов символов гораздо больше.


Как прикреплять картинки к сообщениям: http://www.hardforum.ru/t116562
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разница между 2 и 4 ядрами Олег Олег Процессоры 4 18.02.2012 03:54
Редактор для 8-битной игры Selykreg Задания за деньги 8 19.12.2010 15:04
поиск 64 битной 7-ки . zeros Windows 7 1 16.07.2010 18:44
Какая разница между... kukureku007 Процессоры 7 20.06.2010 17:46
В чём разница между 32 и 64 битными OC? AdminButchery Библиотека 17 22.03.2009 21:49
В чём разница между DVD-R и DVD+R дисками? ww01031977 Любые вопросы от новичков 5 12.02.2009 15:32
В чем разница между Java SE, EE, ME X-Cite_Forever Java 1 21.11.2008 13:22
В чём разница между 32 и 64 битными OC? AdminButchery Разное 0 08.03.2008 10:08
Разница между IE, Mozila и т.д. Shurik_A PHP 4 25.05.2005 01:16
Как узнать индексный формат с 32х битной палитрой ZeroCold Программирование графики 0 17.04.2004 05:43
В чем разница между BC++ и MVC++ Spider Visual C++ 4 06.11.2003 15:05
Разница между EXE и DLL Garik WinAPI 2 04.06.2003 18:55



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов