Сохранение турецкого текста в базу с кодировкой windows-1251

24 мая, 2014 | Автор: El

Столкнулся я как то с проблемой: необходимо было разместить материал на сайте, а база у него как выяснилась в cp-1251, и особые турецкие символы с хвостиками и точками сохранялись в базу как вопросительные знаки.

Переводить всю базу в юникод, не было желания, т.к. нужно было залить всего несколько текстов.

Генерацию HTML кода я делаю в визуальном редакторе CKeditor, и он некоторые символы преобразовывал в коды, а некоторые нет.

 

Я решил что нужно преобразовать все особые турецкие символы в спецкоды, т.к. почти весь турецкий алфавит состоит из совместимых с кодировкой латинских символов.

Нашел специальный сервис Кодировщик символов в HTML коды, но режимы которые он предлагал мне не подходили:
режими «Кодирование символов, для которых есть мнемонические имена в html» - преобразовывал не все символы

а режим «Кодирование всех символов Исключая диапазон latin1» - преобразовывал также и русский текст.

Тогда мне пришла идея о ручной замене всех особых символов. Для начала я выяснил весь список символов в турецком алфавите, затем прогнал его через «Кодирование всех символов Исключая диапазон latin1» - и тем самым выяснил какие символы являются уникальными для турецкого алфавита:

уникальные символы их коды их мнемонические имена (так преобразует ckeditor,
красные символы которые не преобразуются)
Ç
ç
Ğ
ğ
ı
İ
Ö
ö
Ş
ş
Ü
ü
Ç
ç
Ğ
ğ
ı
İ
Ö
ö
Ş
ş
Ü
ü
Ç
ç
Ğ
ğ
ı
İ

Ö
ö
Ş
ş

Ü
ü

Я пошел по такому алгоритму:

  • Генерирую html в ckeditor
  • допиливаю код в соответствии со своими требованиями
  • заменяю символы из таблицы на коды

Для замены я записал макрос в Notepad++, но я думаю, такой же макрос можно записать в любом редакторе поддерживающем макросы. Или еще лучше, написать скрипт по замене.

Итак записываем макрос замены, с учетом регистра, каждого символа на их коды

Макросы Notepad++ сохраняет в файле shortcuts.xml, который находится в каталоге:

"C:Documents and SettingsAdministratorApplication DataNotepad++". Где "Administrator" — имя текущего пользователя Windows.

Теперь я спокойно могу сохранить текст в базу не боясь потерять нужные буквы.

Получившийся макрос выкладываю в файле - с единственным макросом shortcuts.xml

Если увас уже есть записанные макросы, то что бы их не потерять, вместо замены файла, нужно открыть его в редакторе и в разделе <Macros>... </Macros> вставить текст из файла.


Понравилась статья? Жми



Написать комментарий:

Текст сообщения     

Ваше имя (обязательно)     

Ваша почта (скрыто) (обязательно)     

Если комментарии содержат ссылки они проходят модерацию...
Карта сайта
Карта сайта
Игры:

squares
Игра Squares
Прямые ссылки скачать последние версии Adobe Flash, Кодеки, Google Chrome и другие популярные программы  
Календарь для печати на А4:
calendar.ellexdev.com
Внешний вид календаря

Особенность этого календаря: недели отображаются вертикально, а не горизонтально.
 
Компьютерная графика и вычислительная геометрия: