[Guide] Charset Encoding with Notepad++

Status
Not open for further replies.

dota-sdso

Well-Known Member
Joined
Apr 30, 2014
Messages
590
Reaction score
822
Това е инфо за тези които използват Notepad++ да пишат или едитват PHP код и са се натъквали на проблеми с енкодинга на кирилица

Тъй като и аз се натъкнах на този проблем и изпробвах и четох какво ли не с мета тагове и хидър в php се оказа, че всъщност браузъра си разпознава селектнатият чарсет, но самият файл е с вграден енкодинг от Нотпада и затова вместо кирилица излизат едни красиви квадратни въпросителни ?????????????

Та... тази глупост се оправя пак с Нотпад.. селектвате целият код, отивате в менюто Encoding/Convert to UTF-8 ... save и ъплоадвте, a новият файл дори по размер ще се различава.
 
Ами използвай IDE, не текстов редактор. Sublime не е лош безплатен, а за качествено IDE със вграден интерпретатор и IntelliSense out-of-the-box PHPStorm ot JetBrains.
 
Пък работили ли сте с php-based MV* framework? Че ми стана любопитно да видя къде се нареждат PHP Devs.
 
Пък работили ли сте с php-based MV* framework? Че ми стана любопитно да видя къде се нареждат PHP Devs.

На работа бачкам със Zend.
 
Който го мързи да чете,по-добре да не започва :D
Който има желание да се образова,да чете и да помни,
че може да го изтрият този роман.
:D
За пореден път доказахме,че голяма част от нас не забелязваме в кой раздел е дадена тема (нищо лично към никой),
и често забравяме,че темата не е наша, и си задаваме въпроси от типа:
"Как си? Какво правиш?!..." (rock)

Аз предимно ползвам OpenSource програми като:
Geany, NetBeans IDE, PHP Development Tools(Eclipse), jEdit, Notepad++.
А от комерсиалните ползвам PhpStorm и Zend Studio 12.5


Нека започнем с това, че няма такова нещо като "просто текст".
Операционните системи днес съхраняват всичко,
което сме написали, със съответна схема на кодиране към него.

Какво ще рече кодиране?

Означава, че всеки байт информация зад нашия текст е свързан с определена знакова стойност.
Стойностите са подредени в таблица и тази таблица се ползва,
за да могат и други програми за разчитат и разбират написаното.

Защо е важна кодировката?

Kодирането спомага за това компютрите, комуникационната техника и разни други устройства,
които ползват текст, да могат да разбират текста по еднакъв начин.

Кой налага UTF-8?

UTF-8 кодировката става все по-важна в интернет пространството,по няколко причини:
IETF изисква всички нови интернет протоколи да поддържат UTF-8.
IETF (Internet Engineering Task Force) се грижи за разработването и налагането на уеб стандартите.
Работи в тясно сътрудничество с:
W3C (World Wide Web Consortium) и
ISO/IEC (International Organization for Standardization)-(International Electrotechnical Commission),
и се занимава в частност със стандартите на "Набора от интернет протоколи" (TCP/IP).
IMC (Internet Mail Consortium) препоръчва всички e-mail програми да представят и създават мейли чрез UTF-8.

Разликите между UTF-8 и UTF-8 without BOM
Какво изобщо е BOM?

Това е съкращение за Byte Order Mark.
С него се обозначава подредбата по битове (endianness)
на обем данни (текст), както са съхранени в паметта на компютъра.
Но тази подредба не е от значение при UTF-8.
Символен низ, написан на UTF-8 with BOM,
започва със следните байтове: EF BB BF,
но тези байтове се игнорират, когато се извлича записът от файла.
Поради това, вместо UTF-8 ,се задава използването на UTF-8 без BOM.

Когато създаваме уеб проект (дори съвсем прост),
също се съобразяваме с кодировката на файловете.
За HTML5 страниците задаваме UTF-8 (според препоръката на w3schools).
Записваме го като <meta charset=“UTF-8″ />.
Това е сред първите неща, които включваме в HTML кода,
но освен там, е важно да го отбележим и в редактора,
който използваме при писането.
Кодировка UTF-8 ще рече UTF-8 with BOM.
UTF-8 с включен BOM е последователност от байтове (EF BB BF),
която позволява на четящия да идентифицира файла като UTF-8 файл.
Unicode стандартът нито изисква, нито препоръчва използване на BOM.

В заключение:
Как използваме UTF-8, когато създваме файлове за уеб?


1- Съхраняваме файл(овете) в кодировка UTF-8 (въпреки препоръката да се запазват without BOM)
2- Декларираме <meta charset=“UTF-8″ /> за HTML5 ,или
<meta http-equiv=“content-type“ content=“text/html; charset=UTF-8″ /> за HTML4 документите.
3- Уеб сървърът задължително трябва да обслужва файловете ви в кодировка UTF-8
Важно е да се има предвид,
че Apache сървърите са конфигурирани да ползват по подразбиране кодировка ISO-8895-1,
поради което в .htaccess файла се добавя следният ред:
AddDefaultCharset UTF-8

Кратка история на ASCII таблицата.

Без ASCII нямаше да се стигне и до UTF-8. Затова сега малко история.
Въпросното ASCII е американският кодов стандарт за информационен обмен.
Създаден е през 1963 г. от Комитета към Асоциацията по американски стандарт (ASA).
През 1969 г. името на агенцията се променя на Институт по американски национални стандарти (ANSI),
както е известен и до днес.
Поредицата кодове в ASCII се получава при пренареждане и разширяване на набора от символи и знаци,
използвани в телеграфията по това време от компанията на Bell.
Първоначално е включвал само главни букви и цифри,
но през 1967 г. са добавени малки букви и някои контролни знаци.
По този начин се стига до това, което днес познаваме като US-ASCII, т.е. знаците от 0 до 127.
Това е набор от общо 128 знака, определени през 1967 г. като стандарт,
и съдържат всичко необходимо за писане на английски език.
8165342J.png


От ASCII към UTF-8

Кодировката UTF-8 е представена за пръв път на 2. септември 1992 г.
Към момента се използва от над 50% от уеб страниците.
UTF-8 е дело на Ken Thompson (създател на операционната система Unix),
и програмния език "В" (пряк предшественик на С).
Таблицата UTF-8 съвпада в първите си 128 кода с ASCII, за да има приемственост.
Позициите от 0 до 127 съдържат еднобайтови кодове.
Останалите позиции обаче се представят с последователности от множество байтове:
състоят се от един водещ байт и един или повече следващи байтове.
Следващите 1920 кода от UTF-8 заемат по два байта за своето кодиране.
Представят се със съответни числови стойности (кодови указатели),
които указват към съответни знаци.
Това позволява да се включат знаците на почти всички азбуки,производни на латинската:
Гръцката, кирилската, коптската, арменската, еврейската, арабската,
сирийската и таанската азбука, заедно с диакритични знаци.
По три байта заемат останалата част от знаците в основната мултиезична група.
Кодовите указатели на Unicode поначало са разделени на 17 групи, всеки с по 216 указателя.
По четири байта отнема кодирането в UTF-8 на знаците от останалите групи на Unicode,
които включват китайски, японски и корейски знаци,
както и различни исторически записи и математически символи.

8165344R.png


Първоначалната спецификация на таблицата стига до 31-битови числа,
но през ноември 2003 г. UTF-8 е ограничена до U+10FFFF,което е крайният знак в нея.
Причината е, че трябва да се съобрази с ограниченията на UTF-16.
Премахват се всички 5 и 6-байтови последователности,
както и около половината от 4-байтовите.
 
Аз предлагам Дарка да изтрие моята тема/пост и да остави тази на Ерата, която е доста подробна.. за самият енкодинг (аз я прочетох, макар че нямам ресурс да го запомня).

Макар, че сякаш не е лошо да го има и моят пост за тези, като мен които ползват НЕ-професионални програми и се сблъскат с реален проблем от този сорт специално за Нотпад++

Ех ако можеше да се научим да пишем код с четене на теория без практика и ползване на професионални IDE от самото начало...Мисля, че човек помни най-добре с примери и като с случи подобно нещо отвори ДарксТим форума и види един глупак писал как се оправя с Нотпад кирилицата му в модула и кликне 2 пъти с мишката ще го запомни завинаги, а това което е теория ще го забрави утре ако не го практикува.
 
  • Like
Reactions: Deleted member 3583
Status
Not open for further replies.