Інструменти розробника · порівняння тексту
Невидимі відмінності: Non-Breaking Spaces, Розумні цитати та форми Unicode
· Як працює
Опубліковано ToolAcre · Редакція журналу
текст Унікод декупація

Передбачає, чому лінії, які виглядають однаково на екрані, можуть відрізнятися за допомогоюte для байтів, від нерозривних просторів і кучерявих котирування до нуль-широких символів і декомпонентних акцентів, і як їх знайти.
Два рядки, які виглядають ідентично, але позначені як змінено — відкриває з файлом перекладу, що не дає рецензії без видимих причин
Як і раніше не можна порівняти переклад. Браузерні шрифти приховують межі точок, об'єднують акценти та призначають подібні форми до різних пунктуацій. ToolAcre Порівняти JavaScript рядки після тільки вибраного випадку або перетворень білого простору, тому позначений ряд може викладати реальну текстову відмінність.
Дотримуйтесь місця розташування, що не є припущенням про характер. Скопіюйте підозрюваний рядок у редакторі, який розкриває пункти коду або контрольний контроль. Дифф каже, що рядок відрізняється; не означає внутрішню позицію або ім'я значення Unicode відповідає.
Нерозривні простори та їх родичі — пояснює U+00A0 та інші персонажі простору, які вставляють процесори та чому звичайний простір не відповідає їм
U+00A0 нерозривний простір не такий же характер, як U+0020 звичайний простір. У звичайному режимі ключі лінії залишаються чіткими. Під Ignore білим простором заміна білого простору може зменшити кількість тих, хто проходить на звичайний простір після обрізки, роблячи деякі такі відмінності зникнуть.
Ця опція є співвідношеною трансформацією, а не командою Unicode. Відображені рівні рядки зберігають оригінальний лівий текст, і не виправляється документ. Якщо видавнича система вимагає нерозривного сприскування, нормалізований матч може приховати навмисне планування, а не зафіксувати його.
Білий простір може згорнути білий простір Unicode; звичайний порівняння зберігає різні символи
Прямі апотрофії та оцінки, що відрізняються від друкарських форм відкриття та закриття. Ignore case не змінює пунктуацію, а біле космічне обслуговування не повторює лапки. Аутокоректом слово процесора може призвести до повного заміни, навіть якщо речення читає однаково на погляді.
Виберіть призначену пунктуацію на підставі призначення. Код джерела, пошук ключів та форматів даних може знадобитися точний ASCII Символи, при цьому редакційна копія може віддати перевагу друкарським формам. Порівняння доводить різницю, але не має політики, що заперечує яку сторону.
Zero-width і спрямованих персонажів — охоплює нульові пробіли, приєднувачі і двонаправлені позначки, які несуть ніщо ще зміни лінії
Zero-width пробіли, приєднувачі і спрямовані позначки можуть займати рядкові позиції без малювання видимого glyph. ToolAcre дає введення за допомогою текстового вмісту, уникаючи HTML інтерпретація, але це безпечне рендеринг не робить видимих точок прихованого коду. Вони ще беруть участь у звичайному рівні лінії.
Ненадійна поведінка також може зробити візуальне замовлення ненадійним посібником для зберігання. Не скопіюйте підозрний фрагмент змішаного дирекції в команду оболонки або ідентифікатора, тому що він дивиться добре. Перегляд точок коду і навколишнього контексту в вбудованому інструменті перед заміною нічого.
Складання та розкладання акцентів — пояснює NFC тюрма NFD нормалізація з акцентованим листом як один пункт коду versus base Letter plus
Підкреслений характер може бути представлений як один додатковий пункт коду або як базовий лист, який слідує суміщеним знаком. Репозиторій не містить виклику `normalize`, так що канонічно еквівалентні покриття форми залишаються різними JavaScript рядки і можуть виготовити знімні рядки.
Тест-люкс доводить ідентичний рядок Unicode і `café` відрізняється від `cafe`; не обіцяє порівняння графемів. Ця стаття дозволяє уникнути претензій щодо порівняння або повної еквівалентності Unicode. Алгоритм лінії отримує рядки і порівнює їх трансформовані ключі з суворою рівноправністю.
Відкладені та відхилені акценти залишаються різними, оскільки інструмент не виконує нормалізації Unicode
Припустимо, що ресурсна лінія з’являється незмінною. По-перше, порівнювати з усіма опціями, після чого заблоковано білий простір окремо. Якщо рядок стає рівним, оглядовим простором і прихованим білим простором. Якщо воно залишається змінено, перевірте котирування, поєднуючи позначки та інші пункти коду, а не багаторазово повторюючи рядок.
У+00A0, де очікувано звичайний простір. Замініть його тільки після підтвердження вимог формату. У перекладі контент нерозривних просторах можуть бути навмисні конвенції пунктуації, а широкий пошук-і-замінник може призвести до пошкодження правильної друку в іншому місці.
Що це не криється — порівняння звітів, які розрізняються лініями; це не виконує нормалізацію Unicode для вас або заміни символів
Текстовий дифф не нормалізує NFC або NFD, виявляти плутанину, видалити нульові пропуски або виробляти ремонтний вихід. Також не порівнювати кодовані байти. Це окремі операції з наслідками, що компаратор генної лінії не повинен вибирати безшумно.
Ignore випадок використовує JavaScript `toLowerCase`, в той час як Ignore whitespace обрізки і конденси, що відповідають ключам. Не існує можливості використання локального програмного забезпечення або перевірки безпеки Unicode. Використовуйте вихід до вузького дослідження, не засвідчувати ідентифікаторів як безпечний або мовно еквівалентний.
Успішно: довіряйте дифу над очима — укладайте, що позначена лінія є реальною відмінністю і показує, як ToolAcre's Текстові точки порівняння, які лінії для перевірки
При незгоді примітки і дифу, припустимо, що рядок заслуговує на огляд. Алгоритм не має візуальної моделі, щоб бути захищеним шляхом формування шрифту; він бачить ключі лінії. Це обмеження корисно, тому що він зберігає приховані відмінності від проходження merely, тому що браузер малює їх якось.
Запустіть звичайне порівняння спочатку, запишіть, який параметр змінює результат, і перевірте пункти коду до редагування. Цей доказовий причіп відокремлює нормалізацію білого простору від пунктуації або композиції і уникає руйнівної звички заміни кожного незвичайного персонажа з ASCII наближення.