powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как сменить кодировку при чтении из файла
9 сообщений из 9, страница 1 из 1
Как сменить кодировку при чтении из файла
    #38679304
Midnight_girl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На сервере кодировка CP1251
Пишу в файл .csv в кодировке CP866 do ppl.WriteLine(id_";"_$zcvt($tr(^people(id),"`",";"),"I","CP866"))Если пишу в кодировке CP1251 - в файле кракозябы.
Потом читаю из этого файла....
И не пойму, как перевести прочитанное в CP1251 s str=ppl.ReadLine()
 w $zcvt(str,"I","CP1251")Если делать так - выводит опять кракозябы, если CP866 написать, то тоже кракозябы, только другие.
Как перевести прочитанное в другую кодировку?
...
Рейтинг: 0 / 0
Как сменить кодировку при чтении из файла
    #38679363
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Midnight_girlПишу в файл .csv в кодировке CP866 do ppl.WriteLine(id_";"_$zcvt($tr(^people(id),"`",";"),"I","CP866"))
при записи должно быть $zcvt(text,"O","CP866")
есть разница во втором параметре, она означает направление в котором конвертировать строку, In/Out из или в текущую кодировку
...
Рейтинг: 0 / 0
Как сменить кодировку при чтении из файла
    #38679388
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Midnight_girl ,
Запись в файл s file=##class(%Stream.FileCharacter).%New()
 s file.Filename="c:\test.csv"
 s file.TranslateTable="CP1251"
 d file.WriteLine("Привет")
 d file.%Save()Чтение из файла s file=##class(%Stream.FileCharacter).%New()
 s file.Filename="c:\test.csv"
 s file.TranslateTable="CP1251"
 w file.ReadLine(),!
...
Рейтинг: 0 / 0
Как сменить кодировку при чтении из файла
    #38679391
Midnight_girl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAiMor, спасибо! При чтении из файла в строку запихиваю это s str=$zcvt(ppl.ReadLine(),"O","CP866")и Cache на это согласен -)

П.С. Сегодня неделя, как я учу Cache ObjectScript =) поэтому спотыкаюсь в неожиданных местах.
...
Рейтинг: 0 / 0
Как сменить кодировку при чтении из файла
    #38679424
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Midnight_girlНа сервере кодировка CP1251
Пишу в файл .csv в кодировке CP866Поэтому в примере servit должно быть:
s file.TranslateTable="CP866"

Midnight_girl...и Cache на это согласен -)В Cache нет встроенного ИИ :) Вы задали аргументы функции, они прошли проверку корректности. Откуда $zcvt знает, может вам и вправду надо "O"?

Запомнить, когда "I", а когда "O", могут помочь простые правила:
- третий аргумент - всегда внешняя таблица (и никогда - внутренняя)
- в локализации, используемой по умолчанию при 8-битной установке, внутренняя таблица - CP1251;
- второй аргумент (как заметил DAiMor) - направление, которое указывается относительно внутренней таблицы. Т.е., если вы кодируете (во внешнюю кодировку), то "O" - output, если раскодируете - "I".
...
Рейтинг: 0 / 0
Как сменить кодировку при чтении из файла
    #38679588
Midnight_girl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexey Maslov, спасибо за пояснения -)

servit, спасибо, но у меня почему-то Cache ругается на s ppl.TranslateTable="CP866" -((
...
Рейтинг: 0 / 0
Как сменить кодировку при чтении из файла
    #38679814
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Midnight_girlно у меня почему-то Cache ругается на s ppl.TranslateTable="CP866" -((Какого типа у Вас ppl?
...
Рейтинг: 0 / 0
Как сменить кодировку при чтении из файла
    #38679828
Midnight_girl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
servit,
S ppl=##class(%File).%New("C:\"_flnm)
...
Рейтинг: 0 / 0
Как сменить кодировку при чтении из файла
    #38679842
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Midnight_girl ,

%File
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как сменить кодировку при чтении из файла
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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