Девід Мадоре s WebLog Спроба написати Unicode для чайників
Спроба написати Unicode для чайників
Мета: Метою цього вступу в ідеалі було б випустити якийсь документ, який я хотів би назвати Unicode for Dummies: ідея полягала б у тому, щоб мати щось зрозуміле для широкої громадськості (скажімо, усі, хто має мінімальні знання про використання комп’ютера - знання, як скопіювати та вставити, наприклад), і який представляє речі, які я хотів би, щоб усі знали про Unicode (що це таке, для чого він призначений, чому він існує, але також який вплив він може мати на них - особливо з точки зору безпеки - і як ним користуватися). Очевидно, що такий документ справді мав би сенс лише в більш загальних рамках базового комп'ютерного навчання для широкої громадськості (що пояснювало б, наприклад, в одному з його розділів, що таке Інтернет і загальна ідея Інтернету браузер, яка URL-адреса та веб-сторінка, подібні речі, тому я можу дати деякі поради щодо безпеки), але у мене немає часу чи терпіння, щоб спробувати написати такий курс, тому я просто думаю про дуже маленька цегла, та про Юнікод. (І ще раз, я опишу те, що, на мою думку, слід писати, а не насправді писати.) • Чому саме Unicode? По-перше, тому що я думаю, що це низько звисаючий плід (широка громадськість має багато користі за незначні зусилля, щоб трохи знати про цю тему); але також з корисливої причини, яка полягає в тому, що мене дратує, коли я взаємодію з людьми в електронному вигляді, коли я читаю чи відповідаю на такі речі, як, як ти пишеш ℝ у повідомленні в Twitter? (ну, точніше, вони скоріше запитають мене, як я пишу подвійну смужку R (тобто напівжирну дошку); і що мене відверто дратує, це люди, які пишуть | R, намагаються імітувати це ℝ), або ще Я не знаю, як вводити e-in-the, це не на моїй клавіатурі, і я не маю на увазі подібні речі.

Цей запис не призначений для закінчення, і зокрема ставить питання перед технічно компетентними читачами про те, що там ще слід сказати, або про те, як зробити речі більш доступними для мадам Мічу та месьє Дюгену. (Але, чесно кажучи, я, безумовно, буду постійно лінуватися закінчувати цей текст. Оскільки мені буде лінь спрощувати уривки, де я практикував, говорячи занадто складні речі. Проте мене цікавлять відгуки можливої пані Мічу та Пане Дюгену, який би натрапив на цей текст, щоб вони сказали мені, що, на їхню думку, незрозуміле або потребує вдосконалення.)
Коротко. Що я хочу, щоб широка громадськість зрозуміла про Unicode? В основному уривки напівжирним шрифтом далі (але, в будь-якому разі, те, що між уривками виділено жирним шрифтом ...):
По-перше, звичайно, що це таке: Unicode - це комп’ютерний стандарт, що визначає набір символів (але також домовленості щодо управління цими символами), що дозволяє представляти гігантську кількість різних мов, а також величезну масу різноманітних символів (включаючи відомі смайли, які, мабуть, зараз роблять Unicode найбільш відомим серед широкої публіки). Можливо, нам слід додати сюди приклади мов, що підтримуються Unicode, та слів, написаних цими мовами, але скажімо, що майже кожна письмова система мов, що все ще живуть на Землі, і велика купа мертвих мов та деякі штучні мови (Що б це не означало) представляються Unicode. Що стосується символів, вони охоплюють усі типи загальних піктограм, технічні символи, включаючи величезну кількість математичних символів, а також, дуже просто, багато трохи дивних або екзотичних знаків пунктуації.
З іншого боку, що, на мою думку, важливо підкреслити, це те, що в наш час Unicode є скрізь: у переважній більшості ситуацій, коли комп’ютер обробляє рядки (тобто текст), ці символи є символами Unicode. Веб-сторінки знаходяться в Unicode; адреси веб-сторінок є (або принаймні можуть бути) в Unicode; електронні листи знаходяться в Unicode (для адрес електронної пошти це більш сумнівно); Документи Word або LibreOffice знаходяться в Unicode; Пошуки Google/Bing/DuckDuckGo/тощо виготовляються в Unicode; Вікіпедія знаходиться в Unicode; твіти знаходяться в Unicode; навіть SMS є в Unicode (хоча тут є деякі тонкощі, які роблять усі символи не однаковими); у багатьох операційних системах імена файлів знаходяться в Unicode; І так далі. (Звичайно, є винятки: Авіакомпанії, звичайно, не використовують Unicode у своїх допотопних системах бронювання, і якщо у вашому імені є якісь дивні символи, ви, мабуть, знаєте, що, намагаючись отримати квиток.)
Великим успіхом Unicode є сумісність: як тільки всі домовляться про те, що це за персонаж (передавши незручність рішення в Unicode), ми можемо вважати, що концепція символьного рядка діє через комп’ютер, і ми можемо обмінюватися цими даними, не задаючи занадто багато питань.
І як наслідок, у кожному з вищезазначених випадків, якщо ви можете використовувати слова латинського алфавіту як привіт (і, звичайно, якщо ви можете використовувати емодзі), ви також можете використовувати або, принаймні, спробувати використовувати всі інші символи, включаючи всі види інших сценаріїв. (Наприклад, немає необхідності проходити через “Google India” для пошуку नमस्ते в Google.) Я повернуся до питання про те, як ми можемо ввести ці символи (якщо їх немає на клавіатурі ...), але Я відповідаю там неявно людям, які були здивовані тим, що я міг використовувати математичні символи, такі як ℝ, у своїх твітах або навіть у SMS. Це символи Юнікоду, як і будь-які інші, в цьому справді краса системи.
Звичайно, я не стверджую, що всі символи Unicode прийматимуться скрізь: може бути безліч причин, щоб заборонити одним або обмежити інші, або не обробляти їх однаково. Але зазвичай таке обмеження робиться з міркувань безпеки або тому, що символи використовуються для певного значення (наприклад, якщо символ '/' використовується для розділення каталогів в іменах файлів, він не може служити всередині імені файлу, Ви розумієте): отже, вони більше виключають у кожному конкретному випадку, ніж навпаки.
І що, мабуть, найголовніше: копіювати та вставляти текст у Unicode на всіх сучасних комп’ютерних системах, що дозволяє брати символи Unicode з одного місця (навіть якщо ви не знаєте, як їх набирати/набирати) і відтворювати їх в іншому місці. Це вже дозволяє принаймні здійснювати веб-пошук термінів екзотичних мов, навіть якщо хтось не знає, як писати мови, про які йде мова, це вже щось важливе для розуміння. (Ну, ви повинні зазначити, що копіювання та вставлення іноді робить всі види негласних модифікацій тексту, який ви копіюєте та вставляєте, і, таким чином, викликає ускладнення, але це принаймні відправна точка.) Так само, для тих, хто запитує мене, як вони можуть надіслати ℝ за допомогою SMS, вони можуть принаймні зробити це, вибравши це ℝ із цієї сторінки, яку переглядають на своєму мобільному телефоні, використовуючи копію, щоб зберегти відповідного персонажа в пресі, та склеюючи, щоб помістити персонажа в SMS. Можуть бути і простіші речі, але добре мати на увазі подібне рішення (мені здається настільки очевидним, що мені важко уявити, що ми не можемо про це думати, але я помітив, що все, про що думають не всі це, тому я волію штовхати двері).
Гаразд, спробуймо бути трохи конкретнішими. Кілька речей, які, на мою думку, вам слід знати про символи Unicode:
Додаток: дивіться пізніше запис про смайлики (і проблему з їх визначенням!).
Безперечно, можна було б щось сказати про ряд окремих персонажів, якби лише для химерного лікування деякі програми їх надавали. Наприклад, ми могли б навести випадок з правильним апострофом (', U + 0027 АПОСТРОФ), який іноді за допомогою магії перетворюється на вигнутий апостроф (', U + 2019 ПРАВИЙ ОДИН РОЗРИВНИК). Або дуже корисний нерозривний простір (U + 00A0 NO-Break Space), який Firefox має неприємну тенденцію видаляти з абсолютно дурних причин, зрештою. Або двоє друзів, які є ZWNJ (U + 200C НУЛЬНА ШИРИНА НЕ-СПИЛЬНИК) і ZWJ (U + 200D ZERO WIDTH JOINER) (див. Цю тему Twitter, на яку я вже посилався вище, або це пояснювальне відео).
І звичайно, є проблеми безпеки, пов’язані з можливою плутаниною між візуально невідмінними символами Unicode: наприклад, якщо хтось переконує вас скопіювати та вставити щось на зразок gооgle.com, це може бути пасткою, бо ви цього не помітили було кириличним "о" (U + 043E КИРИЛИЧНИЙ МАЛЕНЬКИЙ ЛІТЕР O), і тому це не google.com, хоча це схоже на це. (Ну, у цьому конкретному пункті, з одного боку, адреса все ще належить Google, оскільки вони її також отримали, а з іншого боку, браузер, ймовірно, відображатиме xn--ggle-55da.com, а не gооgle.com в адресі bar, тому проблем немає, але такі типи атак можуть бути нескінченними.)
Але чого мені не вистачає, перш за все, це інструменти для звітування перед пані Мічу та паном Дугену для виконання двох операцій, які я вважаю абсолютно необхідними:
- введіть символи Unicode за номером або за іменем, або просто зручно переглядати доступні імена (і шукати в них), і навпаки,
- декодувати рядки Unicode (щоб дізнатись, що в ній), тобто перетворити рядок символів, наприклад bоnjοur ❣︎, на U + 0062 ЛАТИННИЙ МАЛИЙ ЛІТЕР B + U + 043E КИРИЛИЧНИЙ МАЛИЙ ЛІТЕР O + U + 006E ЛАТИННИЙ МАЛИЙ ЛІТЕР N + U + 006A ЛАТИННИЙ МАЛИЙ ЛІТЕР J + U + 03BF ГРЕЦЬКИЙ МАЛИЙ БУКВАР ОМІКРОН + U + 0075 ЛАТИНСЬКИЙ МАЛИЙ ЛІТЕР U + U + 0072 ЛАТИННИЙ МАЛИЙ ЛІТЕР R + U + 00A0 ПРОСТІР ПРОБІВ + U + 2763 ВИМИЛЕННЯ ВИМИЛЕННЯ ВАЖЛИМИ СЕРЦЯМ + U + FE0E .
Ці дві операції здаються мені важливими, навіть для нетехнічного користувача, щоб мати можливість повною мірою скористатися перевагами Unicode: перша дозволяє вводити будь-який символ, а друга - розуміти те, що ви бачите. (і для перевірки відсутності будь-яких прихованих символів або маскування під інших; наприклад, у цьому твіті, про який повідомлялося вище, в останньому слові є багато прихованих символів, і важливо мати можливість дослідити за бажанням).
На жаль, я не знаю, що запропонувати мадам Мічу та месьє Дюгену.