PHP

Кодировка в программировании

Здравствуйте. А что такое кодировка. Просто увидел вид кодировки, при сохранении файла блокнота, там было UTF-8, ANSI и другие виды кодировок.
Ilham Muradov
Ilham Muradov
568
файл состоит из чисел (байтов) - вот кодировка - это таблица, какому символу соответствует какое число, или бывает два числа, если точности одного числа не хватает (оно от 0 до 255)

тупее всего в Юникоде - там вообще каждому символу 2 числа - файлы много весят. в других умнее, основным 1, более редким 2.
ИМ
Иван Мельник
92 464
Лучший ответ
Ilham Muradov А где можно посмотреть все виды кодировок, и их значение?
их много, cp1251 кириллица, c1252 западно-европейская. Некоторые приложения, базы данных и т. п. могут работать только с определенной кодировкой. И в каждой кодировке свое количество символов, наличие или отсутствие того или иного...
Илюха Шарик
Илюха Шарик
61 132
способ представления текстовых данных
в вычислительной технике любые данные, включая текст, хранятся в виде последовательностей байт
кодировка - это способ, с помощью которого определяется, какие байты из этой последовательности какому символу соответствует
кодировка не привязана к конкретному куску текста, поэтому текстовые редакторы обычно пытаются её угадать, а когда это не получается, её нужно указывать вручную
в принципе можно попробовать вскрыть любой кодировкой любые данные, включая не-текстовые, но тогда, очевидно, получится мусор - как при открывании блокнотом файла с картинкой

ansi (ascii) - кодировка фиксированной длины, каждый байт соответствует одному символу
первые 128 возможных значений байта стандартизированы, их можно посмотреть в интернете, последние 128 в стандарт ascii не входят - зато стандартизированы в различных расширениях ascii, именуемых кодовыми страницами
кодовые страницы - это, например, вышеназванные cp1251, cp1252 или cp866, которые в принципе являются самостоятельными однобайтовыми кодировками, у которых половина символов общая, а другая - различается

utf-8 - кодировка переменной длины
там механика чуть сложнее: если символ входит в первые 128 символов ascii, то он кодируется тем же одним байтом, что и в ascii, иначе пишется какой-то определённый байт из второй половины, которая не стандартизирована ascii (со старшим битом 1), а дальше пишется ещё несколько определённых байт
подробнее про то, какую структуру имеют эти байты, можно глянуть на вики

наконец, одно маленькое замечание: если работать только с символами ascii (латиница, цифры, некоторые основные символы и т. д.), то о кодировке беспокоиться незачем -- они практически любой кодировкой пишутся и читаются одинаково
MJ
Merdan Jalil
51 164