powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / txt из 8859-1 в Windows 1251
7 сообщений из 7, страница 1 из 1
txt из 8859-1 в Windows 1251
    #40100203
Kulakov Oleg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые,

Подскажите, пожалуйста, как конвертировать строку из iso-8859-1 в Windows 1251?
...
Рейтинг: 0 / 0
txt из 8859-1 в Windows 1251
    #40100440
of63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kulakov Oleg,

Конвертировать можно
CPCONVERT - если в фоксе имеется соотв. кодовая страница источника
STRCONV - см. описание, и про региональный параметр
CHRTRAN - если руками создать два списка трансляции байтов "что и во что"
SYS(15) - почти как CHRTRAN, только список для трансляции д.б. в виде набора выходных байтов, в порядке ASCII-кодов байтов источника

Если первые два не подойдут, то последние два смогут.

Кстати, в примере строка 1 бесполезна для анализа (она изображена в какой-то неподходящей кодировке), надо побайтный список текста, в "HEX-виде"
...
Рейтинг: 0 / 0
txt из 8859-1 в Windows 1251
    #40100475
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я в курсе, кодировку iso-8859-1 обычно ставят в соответствие с 1252 (Win eng). Соответствие не полное, но, обычно работает. Так что, можно попробовать так

Код: sql
1.
?CPConvert(1252, 1251, "Текст в кодировке 1252")
...
Рейтинг: 0 / 0
txt из 8859-1 в Windows 1251
    #40101522
Kulakov Oleg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ
Насколько я в курсе, кодировку iso-8859-1 обычно ставят в соответствие с 1252 (Win eng). Соответствие не полное, но, обычно работает. Так что, можно попробовать так

Код: sql
1.
?CPConvert(1252, 1251, "Текст в кодировке 1252")



Попробовал ваш вариант не получается, куча вопросительных знаков появилось.
Приложил файл.
В MS Worde открывается если выбрать кодировку Кириллица (ISO). Возможно я не так делаю.
Пожалуйста подскажите как можно решить проблему.
...
Рейтинг: 0 / 0
txt из 8859-1 в Windows 1251
    #40101559
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iso-8859 - это обычная кодовая страница. Т.е. каждый символ кодируется одним байтом. В теории, это должно было бы решаться при помощи CPCONVERT(), но, к сожалению, в таблице поддерживаемых кодировок в FoxPro ее нет. Поэтому остаются делать "закат солнца вручную" Т.е. при помощи ChrTran() заменять одни ASCII-коды на другие. Примерно так получается

Все 255 символов я выписывать не стал, но общий принцип такой

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
lc8859 = ''
For i = 176 to 239
    lc8859 = m.lc8859 + Chr(i)
EndFor
lc8859 = m.lc8859 + Chr(161) + Chr(241)
lc1251 = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"
lc1251 = lc1251 + "абвгдежзийклмнопрстуфхцчшщъыьэюя"
lc1251 = lc1251 + "Ёё"

?Chrtran(lcFile,lc8859,lc1251)


lcFile = FileToStr("C:\MyDir\tekst.txt")
?ChrTran(m.lcFile, m.lc8859, m.lc1251)



Сама таблица кодировок iso-8859 легко ищется в интернете. Например, быстрый поиск дал мне вот эту страницу

Таблицы кодировок ASCII, CP1251 (windows1251), ISO-8859-5

Если лень искать, то можно просто сделать посимвольный разбор текста и для каждого символа посмотреть значение функции ASC()


Дальше просто остается аккуратно сформировать 2 строки из 66 символов (33 маленькие буквы + 33 большие буквы русского алфавита) и использовать ChrTran для преобразования файла. На первый взгляд, латинские буквы, цифры и прочие символы имеют одинаковый ASCII-код в обоих кодовых страницах. Но, для гарантии, можно, конечно, и все 255 символов так перекодировать
...
Рейтинг: 0 / 0
txt из 8859-1 в Windows 1251
    #40101560
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сама таблица кодировок iso-8859 легко ищется в интернете.

Кстати, в википедии можно посмотреть
...
Рейтинг: 0 / 0
txt из 8859-1 в Windows 1251
    #40101584
Kulakov Oleg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ

Огромное Вам спасибо! Все получилось.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / txt из 8859-1 в Windows 1251
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Читали форум (2): Анонимы (1), Bing Bot 6 мин.
Пользователи онлайн (7): Анонимы (5), Yandex Bot, Bing Bot 2 мин.
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]