чи є спосіб виділити всі спеціальні символи наголосу у піднесеному тексті чи будь-якому іншому текстовому редакторі?


76

Я використовую HTML-кодування спеціальних символів у піднесеному тексті для перетворення всіх спеціальних символів у їх HTML-код. У мене багато наголошених символів у різних частинах файлу. Отже, було б чудово, якби я міг вибрати весь спеціальний символ, а потім скористатися плагіном для конвертації всіх відразу!

Чи існує регулярний вираз, який допомагає вибрати лише всі спеціальні символи?

Відповіді:


184

Так.

Піднесений текст підтримує регулярний вираз, і ви можете вибрати всі символи, що не належать до ASCII (кодова точка> 128). Цього знаходження регулярного виразу має бути достатньо для вас:

[^\x00-\x7F]

Просто шукайте та замінюйте.

Але якщо ви робите кодування HTML вручну, це робить неправильно. Збережіть свої файли як кодування UTF-8 (Sublime Text 2 за замовчуванням) і переконайтеся, що ваш веб-сервер також надсилає ці файли як UTF-8. Не потрібно перетворення, кодування чи чогось іншого.


1
Однак при кодуванні електронної пошти HTML використання UTF-8, як правило, не підходить, оскільки воно підтримується не всіма поштовими клієнтами. У цих випадках необхідно ручне кодування HTML.
mtnorthrop

@mtnorthrop: Чи можете ви сказати, коли UTF-8 викликає проблеми? А саме я розсилаю тони електронних листів HTML, і я хотів би знати, з якими проблемами можу зіткнутися.
Mikko Ohtamaa

не можу вам подякувати за це ... намагався розглянути файл даних non-utf-8 годинами, намагаючись це зрозуміти
Метт Кім

15

Як додаткове посилання (або як доповнення):

Пакет Sublime Text 2/3, названий Highlighter, може (як сказано в його назві) виділити деякі символи за допомогою регулярного виразу ...

"Ви також можете додати власний регулярний вираз для виділення символів."

Отже, за допомогою цього пакету, плюс @Mikko Ohtamaaвідповідь, ми можемо редагувати файл ...

highlighter.sublime-settings - User

... і включити запропонований регулярний вираз (виражений тут як [^\\x00-\\x7F]), щоб закінчити щось подібне:

{  
    "highlighter_regex": "(\t+ +)|( +\t+)|[^\\x00-\\x7F]|[\u2026\u2018\u2019\u201c\u201d\u2013\u2014]|[\t ]+$"  
}

Результатом буде автоматичне виділення будь-яких "символів, що не належать до ASCII (кодова точка> 128)" у нашому файлі.

Зверніть увагу, що ми не зробили вибір цих персонажів, а лише виділимо їх, щоб легко зрозуміти, чи є у вас такі.


7

Ще один варіант плагіна

Нещодавно я написав плагін, присвячений висвітленню не-ascii символів: https://github.com/TuureKaunisto/highlight-dodgy-chars

Точно такої ж функціональності можна досягти за допомогою Highlighter, але за допомогою менш загального плагіна Highlight Dodgy Chars вам не потрібно писати регулярний вираз, ви можете просто вказати в налаштуваннях символи, не пов'язані з ascii, які ви не хочете виділяти. Європейські спеціальні символи за замовчуванням додані в білий список.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.