Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ANSI -> UTF-8 etc, как работать с разными форматами текстов 
:(
    Опции темы
Andrey_Skif
  Дата 3.9.2007, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 31.5.2007
Где: Волгодонск

Репутация: нет
Всего: нет



Проблема возникла следующая. При открытии текста в формате UTF-8 (при выводе его в textBox) отображается нечто непонятное.

Вопрос, соответственно, такой: как сделать, чтобы текст выглядел так, как надо.
        А кроме того, как текст, открытый в одном фориате, пересохранить в другом (формате).

Кстати (может это важно, а может и нет - не знаю), формат открываемого текста заранее неизвестен. Может быть или ANSI или UTF-8.
PM MAIL   Вверх
Akina
Дата 3.9.2007, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(Andrey_Skif @  3.9.2007,  18:57 Найти цитируемый пост)
как сделать, чтобы текст выглядел так, как надо

Использовать (системную) функцию преобразования.

Цитата(Andrey_Skif @  3.9.2007,  18:57 Найти цитируемый пост)
формат открываемого текста заранее неизвестен. Может быть или ANSI или UTF-8. 

Поди туда не знаю куда... конечно, естьь алгоритмы эвристического определения кодировки, но они не безгрешны.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Andrey_Skif
Дата 3.9.2007, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 31.5.2007
Где: Волгодонск

Репутация: нет
Всего: нет



Цитата

Цитата

как сделать, чтобы текст выглядел так, как надо 



Использовать (системную) функцию преобразования.


Хорошо, но скажи какую именно функцию и как использовать. То, что надо чего-то и как-то использовать я и сам понимаю. smile 
Цитата

Цитата

формат открываемого текста заранее неизвестен. Может быть или ANSI или UTF-8.  



Поди туда не знаю куда... конечно, естьь алгоритмы эвристического определения кодировки, но они не безгрешны.


С этого места поподробнее...

А вообще-то, я исключительно для личного пользования написал программку, которая немного корректирует субтитры (SRT формат, если что). Так вот, там кодировка разная попадается, так что выбирать не приходится и это не моя прихоть. А что касается определения кодировки, то можно также поподробнее (или ссылка). Пожалуйста, если не трудно. smile 
PM MAIL   Вверх
Akina
Дата 3.9.2007, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(Andrey_Skif @  3.9.2007,  20:12 Найти цитируемый пост)
какую именно функцию и как использовать

Код

Declare Function CharToOem Lib "user32" Alias "CharToOemA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long
Declare Function OemToChar Lib "user32" Alias "OemToCharA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long
Declare Function CharToOemBuff Lib "user32" Alias "CharToOemBuffA" (ByVal lpszSrc As String, ByVal lpszDst As String, ByVal cchDstLength As Long) As Long
Declare Function OemToCharBuff Lib "user32" Alias "OemToCharBuffA" (ByVal lpszSrc As String, ByVal lpszDst As String, ByVal cchDstLength As Long) As Long
Эти и аналогичные для прочих кодировок. В общем, копай API около этих функций.

Цитата(Andrey_Skif @  3.9.2007,  20:12 Найти цитируемый пост)
С этого места поподробнее...

Алгоритмы определения кодировок основаны на 2 принципах: определение невалидности данного символа в данной кодировке (отсев заведомо неверных кодировок) и частотный анализ вхождения символов (выбор кодировки из возможных). Если первый этап работает правильно при корректном тексте (например chr(0) невозможен в СР866), то второй всегда дает лишь вероятностное решение, улучшение которого возможно лишь в тандеме с проверкой по словарю. 

PS. Плотно этими вопросами не занимался, так что могу дать лишь самое общее направление, в котором можно начинать поиск.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Andrey_Skif
  Дата 4.9.2007, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 31.5.2007
Где: Волгодонск

Репутация: нет
Всего: нет



 smile Спасибо большое!!! smile 

Отдельный респект за краткий обзор алгоритмов определения кодировок. smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0940 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.