Как легко сохранить файл в кодировке UTF-8 | |
---|---|
ZenTigra Автор Сообщений: 514 Дата регистрации: 03.12.2004 |
Нужно сохранить текстовый файл в кодировке UTF-8 - как, это попроще сделать?
PS.Про то как сохранять информацию в файл, я в курсе, вопрос о перекодировке... |
Re: Как легко сохранить файл в кодировке UTF-8 | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Есть разные пути. Если речь идёт только о кириллице, то можно самому написать перекодировку. На форуме точно есть темы про это.
Также можно воспользоваться какой-нибудь консольный утилитой. Сейчас под рукой нет, но помнится, что использовал в одном из своих проектов. В командной строке указывается входной файл с ключами. На выходе файл в формате UTF-8. С форматом UTF-8 тоже есть некоторые нюансы. В заголовке записывается поизнак (забыл, как он сокращённо называется) того, в какой последовательности читать младший и старший байт символа в формате UTF-8. Исправлено 2 раз(а). Последнее : Simple777, 07.02.21 12:57 |
Re: Как легко сохранить файл в кодировке UTF-8 | |
---|---|
Аспид Сообщений: 3475 Откуда: Москва Дата регистрации: 01.04.2005 |
help strtofile()
STRTOFILE(cExpression, cFileName [, lAdditive | nFlag]) nFlag 4 Write UTF-8 Byte Order Mark (BOM) EF BB BF at the beginning of file. cExpression is assumed to be UTF-8, therefore no translation is performed. The file is overwritten. |
Re: Как легко сохранить файл в кодировке UTF-8 | |
---|---|
ssa Сообщений: 13008 Откуда: Москва Дата регистрации: 23.03.2005 |
StrConv()
------------------ Лень - это неосознанная мудрость. |
Re: Как легко сохранить файл в кодировке UTF-8 | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Вона оно как в VFP.
|
Re: Как легко сохранить файл в кодировке UTF-8 | |
---|---|
Crispy Сообщений: 18571 Дата регистрации: 16.05.2005 |
Для FPD (и ранних версий VFP): foxclub.ru
;) ------------------ В действительности все иначе, чем на самом деле. (Антуан де Сент-Экзюпери) |
Re: Как легко сохранить файл в кодировке UTF-8 | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Посмотрел.
Только там про BOM нету ничего... И FPD LPARAMETERS не разумеет. Пришлось PARAMETERS написать. [attachment 34765 bv.gif] А в целом преобразует во что-то. Исправлено 2 раз(а). Последнее : Simple777, 08.02.21 13:27 |
Re: Как легко сохранить файл в кодировке UTF-8 | |
---|---|
Crispy Сообщений: 18571 Дата регистрации: 16.05.2005 |
Фигасе. Оно работало у меня сколько-то лет. На FPD. И никаких бим-бомов не надо было. Формировались XML-файлы для налоговой отчетности. А LPARAMETERS чисто "для совместимости" прилепил. Пива про это вроде сказал. В принципе с VFP6 юникоды и так уже поддерживаются. С VFP7 точно. А начальными версиями уже наверно 100 лет никто не пользуется. В отличие от FPD. Как ни странно. Казалось бы. Впрочем, в чем-то оно действительно лучше было начальных версий VFP. ------------------ В действительности все иначе, чем на самом деле. (Антуан де Сент-Экзюпери) Исправлено 1 раз(а). Последнее : Crispy, 08.02.21 14:24 |
Re: Как легко сохранить файл в кодировке UTF-8 | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
Цитата:Если представить себе преобразование "большого" текста, то в плане скорости ты выбрал вариант, наиболее далекий от оптимального. Даже не знаю, что может быть хуже STUFF() в этом случае. |
Re: Как легко сохранить файл в кодировке UTF-8 | |
---|---|
IPUA Сообщений: 45 Дата регистрации: 21.04.2006 |
А обратной (UTF-8 TO 1251) для ранних версий нету? Нужно для VFP 6 где StrConv() заканчивается цифрой 8 во втором параметре |
Re: Как легко сохранить файл в кодировке UTF-8 | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Через АПИ функции можно WideCharToMultiByte и MultiByteToWideChar. "кодовая страница utf8" это #define CP_UTF8 65001
------------------ WBR, Igor |
Re: Как легко сохранить файл в кодировке UTF-8 | |
---|---|
Crispy Сообщений: 18571 Дата регистрации: 16.05.2005 |
Что в твоем понимании "большой"? В налоговой отчетности было максимум пара тысяч строк. Миллионов там в принципе не может бывать - как минимум их сервер бы сдох на таком файле. Все делалось за доли секунды, даже не измерял, не было нужды. Миг какой-то мизерный. И повторю все это делалось в FPD2.6, где каких-то иных возможностей не сказать, чтобы так уж много. Их попросту нет. И таки да - оно таки работало без никаких проблем. Что всегда как бы убивающий все красивые теории факт. Пример же привел чисто для Симплы, как пользующего FPD для своих нужд. Мне же оно в принципе вообще никак давно уже не актуально. ------------------ В действительности все иначе, чем на самом деле. (Антуан де Сент-Экзюпери) |
Re: Как легко сохранить файл в кодировке UTF-8 | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
Что-то я не заметил в описании ничего, что касалось бы "налоговой отчетности" В решениях процедура позиционируется как Цитата: Почему я не могу использовать её для пребразования мегабайтных файлов? Ты это не запрещал. Цитата:Такие возможности есть - читаешь символ исходной строки и добавляешь преобразованный к результирующей строке. |
Re: Как легко сохранить файл в кодировке UTF-8 | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Если не делать это через конкретно фоксовые строки (а, к примеру, через файлы - fopen/fread/fwrite), то будет вполне шустро для мегабайтных объёмов и на FPD. Для перфекционистов - нарисовать на си plb или как там "расширения" для фокса назывались... Хотя нынче это будет тот ещё квест - найти library construction kit с сишным компилятором нужной версии... Для VFP (любой версии) можно задействовать WinAPI - он, насколько я в курсе, с буферами в памяти работает аккуратно и эффективно - не копируя туда-сюда строки и их части по 100500 раз. ------------------ WBR, Igor |
Re: Как легко сохранить файл в кодировке UTF-8 | |
---|---|
Каратаев Сообщений: 3977 Откуда: Алматы Дата регистрации: 04.12.2001 |
Как вариант, у меня при создании файла сразу строки, которые в него пишу, перекодируются. Например:
------------------ Никогда не бывает настолько плохо, чтобы не могло быть еще хуже. |
Re: Как легко сохранить файл в кодировке UTF-8 | |
---|---|
Crispy Сообщений: 18571 Дата регистрации: 16.05.2005 |
Зачем тебе непременно прям аж так надо грузить что-то гигантское в саму функцию?! Оно в FPD же и не загрузится по любому. Там ведь предел строки совсем мизерный был - это тебе не VFP! Данную же функцию абсолютно без проблем можно применять например для построчного считывания-вставки для больших файлов. (если уж кому-то приспичило) В чем проблемы-то? Т.е. никто этого и не запрещает, чтобы:
------------------ В действительности все иначе, чем на самом деле. (Антуан де Сент-Экзюпери) |
Re: Как легко сохранить файл в кодировке UTF-8 | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
За полтора десятка лет ничего не изменилось:
www.sql.ru |
Re: Как легко сохранить файл в кодировке UTF-8 | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
Ну, если строка в 16 мегов - это мизер, то ты прав. |
Re: Как легко сохранить файл в кодировке UTF-8 | |
---|---|
leonid Сообщений: 3204 Откуда: Рига Дата регистрации: 03.02.2006 |
[attachment 34778 fpd.jpg] |
Re: Как легко сохранить файл в кодировке UTF-8 | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
А как они в 640к переделывали строки, например UTF --> ASCII, там, при буферизаци, надо не прозевать границу при 2-х и более байтных "символах". FPD (и VFP) сделали великие ребята, не побоюсь этого слова, было всё по честному... ну, не нарывался на косяки (хотя хотелки тогда были не шибко сложные и емкие, при 5-10 МБ винте ) )
|
© 2000-2024 Fox Club  |