Задать кодировку текста
Тип: КодировкаТекста; Строка. Тип кодировки файла. Тип файла может быть задан как в виде значения перечисления КодировкаТекста, так и в виде строки с указанием названия кодировки.
Поддерживаемые названия кодировок:
UTF-8
UTF-16
UTF-16BE
UTF-16LE
UTF-32
UTF-32BE
UTF-32LE
UTF16_PlatformEndian
UTF16_OppositeEndian
UTF32_PlatformEndian
UTF32_OppositeEndian
UTF-7
IMAP-mailbox-name
SCSU
BOCU-1
CESU-8
ISO-8859-1
US-ASCII
gb18030
IBM367
iso-8859-2
iso-8859-3
iso-8859-4
iso-8859-5
iso-8859-6
iso-8859-7
iso-8859-8
iso-8859-9
iso-8859-13
iso-8859-15
cp932
Shift_JIS
EUC-JP
cp33722
windows-950
Big5
cp950
Big5-HKSCS
cp1386
GBK
GB2312
GB_2312-80
cp964
cp949
cp949c
EUC-KR
ibm-971
KSC_5601
ibm-1363
windows-949
windows-874
cp874
ibm-1162
cp437
cp737
cp775
cp850
cp851
cp852
cp855
cp856
cp857
cp858
cp860
cp861
cp862
cp863
cp864
cp865
cp866
ibm-867
CP868
cp869
KOI8-R
ibm-901
ibm-902
cp922
KOI8-U
ibm-4909
windows-1250
windows-1251
windows-1252
windows-1253
windows-1254
windows-1255
windows-1256
windows-1257
windows-1258
macintosh
x-mac-greek
x-mac-cyrillic
x-mac-centraleurroman
x-mac-turkish
hp-roman8
Adobe-Standard-Encoding
cp1006
cp1098
cp1124
cp1125
ibm-1129
cp1131
ibm-1133
ISO-2022-JP
JIS_Encoding
ISO-2022-JP-2
ISO_2022,locale=ja,version=3
ISO_2022,locale=ja,version=4
ISO-2022-KR
ISO_2022,locale=ko,version=1
ISO-2022-CN
ISO-2022-CN-EXT
HZ-GB-2312
windows-57002
windows-57003
windows-57011
windows-57010
windows-57007
windows-57004
windows-57005
windows-57008
windows-57009
LMBCS-1
LMBCS-2
LMBCS-3
LMBCS-4
LMBCS-5
LMBCS-6
LMBCS-8
LMBCS-11
LMBCS-16
LMBCS-17
LMBCS-18
LMBCS-19
IBM037
ebcdic-de
ebcdic-dk
IBM278
IBM280
IBM284
IBM285
IBM290
IBM297
IBM420
IBM424
IBM500
ibm-803
IBM-Thai
IBM870
IBM871
cp875
IBM918
cp930
cp933
cp935
cp937
cp939
cp1025
IBM1026
IBM1047
cp1097
cp1112
cp1122
cp1123
ibm-1130
ibm-1132
ibm-1137
IBM01140
IBM01141
IBM01142
IBM01143
IBM01144
IBM01145
IBM01146
IBM01147
IBM01148
IBM01149
ibm-1153
ibm-1154
ibm-1155
ibm-1156
ibm-1157
ibm-1158
ibm-1160
ibm-1164
ibm-1364
ibm-1371
ibm-1388
ibm-1390
ibm-1399
ibm-5123
ibm-8482
ibm-16684
ibm-4899
ibm-4971
ebcdic-he
ebcdic-ar
ibm-37_P100-1995,swaplfnl
ibm-1047_P100-1995,swaplfnl
ibm-1140_P100-1997,swaplfnl
ibm-1142_P100-1997,swaplfnl
ibm-1143_P100-1997,swaplfnl
ibm-1144_P100-1997,swaplfnl
ibm-1145_P100-1997,swaplfnl
ibm-1146_P100-1997,swaplfnl
ibm-1147_P100-1997,swaplfnl
ibm-1148_P100-1997,swaplfnl
ibm-1149_P100-1997,swaplfnl
ibm-1153_P100-1999,swaplfnl
ibm-12712_P100-1998,swaplfnl
ibm-16804_X110-1999,swaplfnl
ebcdic-xml-us
Тип: Строка. Задается строка, являющаяся разделителем строк, к которой при записи файла будет преобразован символ ПС. Если строка пустая, то разделители строк при записи не конвертируются.
Допустимуе варианты разделителей строк:
ВК;
ПС;
ВК+ПС (значение по умолчанию — может не указываться).
При использовании других строк в качестве разделителей, будет вызвано исключение.
Значение по умолчанию: ВК+ПС
Описание:
Записывает текстовый документ в файл с указанным именем.
Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Примечание:
При работе на веб-клиенте вызов метода выполняет обращение к серверу.
Пример:
хм. чего-то не работает
?¤” ©«:4705*****************20110112095749
’ЁЇ?д:Ќ„‘
Ђ¤аЋвЇа:188380, ѓЂ’—?Ќ‘Љ?‰ ђЂ‰ЋЌ, ЏЋ‘…‹ЋЉ ‚›ђ?–Ђ, ‘?‚…ђ‘ЉЋ… ?Ћ‘‘…, 168, ,
’Ґ«ЋвЇа:323-86-21
Љ®«„®Є:1
‚Ґаб”®а¬:3.06
‘«г¦?д:1165316270
@@@
?¤„®Є:20100423114813*******000000000001
@1
?ЌЌќЄбЇ:7826042134
ЉЏЏќЄбЇ:470501001
Ќ Ё¬ќЄбЇ:‡ЂЉђ›’Ћ… ЂЉ–?ЋЌ…ђЌЋ… ЋЃ™…‘’‚Ћ «’ЋђѓЋ‚›‰ „ЋЊ «ЉђЂ‘‘»
ЏаЁ§ќЄбЇ:2
@@1
2
‚Ё¤Ќ «ЏҐаЁ®¤:1
Ќ «ЏҐаЁ®¤:201002
ЏаЁ§‚Ё¤„ҐЄ«:1
Ќ®¬ҐаЉ®аа:0
#1
ЏаЁ§‚„ќЄбЇ:01
Ќ «Ѓ § ‚„:912809.5
‡ пў«Ќ„‘‘㬂„:111182.87
##1
#1
ЏаЁ§‚„ќЄбЇ:02
Ќ «Ѓ § ‚„:3218925.6
‡ пў«Ќ„‘‘㬂„:437186.61
##1
@2
@3
#$
?¤Љ®ва:201004231148130001
$1
„ в ‡ Є«Љ®ва:13.10.2008
Ќ®¬ҐаЉ®ва:151-ќ
ЏаЁ§‚„ќЄбЇЉ®:02
‘г¬Љ®ва‚ «:RUB,12000000
‘г¬Џ‚ «:RUB,1674271
#1
Ќ Ё¬’®ў аЉ®ва:‚…Ќ’?‹њ Љ‚-1Џ
Љ®«’®ў аЉ®ва:796,20
##1
#1
Ќ Ё¬’®ў аЉ®ва:‚›ЏђџЊ?’…‹њ „“ѓЂ-318 Њ1 220/380‚
Љ®«’®ў аЉ®ва:796,1
##1
#1
Ќ Ё¬’®ў аЉ®ва:‚›ЏђџЊ?’…‹њ „“ѓЂ-318 Њ1 220/380‚
Стандартный плагин 1С и кодировка Windows-1251
Добрый день всем!
Была настроенная синхронизация с 1С УТ 8.3. Синхронизация работала со стандартным плагином из магазина.
В какой то момент синхронизация поломалась. Сейчас сайт отдает заказы в 1С, 1С их видит но прочитать и загрузить в базу не может. Так как они в кодировке Windows-1251 и видны как крокозябры.
Удалял, и заново ставил плагин синхронизации 1С — не помогло.
Скажите куда копать.
с уважением, Денис
2 ответа
Плагин отдает заголовки явно указывающие кодировку отдаваемых данных.
Либо 1С перестала их понимать, либо они не могут отправиться корректно (такое бывает тогда, когда есть посторонний вывод в следствии модификации данных)
Так же стоит проверить ручной экспорт данных — корректно ли видны файлы в браузере.
спасибо, за ответ!
ручной работает (через файл), в браузере видны заказы (если открыть файл заказов сделанный в ручном режиме). Если открыть с диска компьютера то тоже все видно. И в браузере (IE) и блокноте и в нотепад +++
вот 2 скрина из 1С.
Один с кракозябрами — автоматический обмен.
Второй (с читаемой инфой) ручной обмен.
получается файлы фактически разные. не смотря на заголовки с кодировкой одинаковые? Такое может быть?
Владислав, пожалуйста, подскажите что такое : «посторонний вывод в следствии модификации данных»
с примером, если возможно. Что бы понимать где искать этот «посторонний вывод в следствии модификации данных»
Часто это BOM после редактирования файла с кодом или конфигом редактором, который не поддерживает UTF-8, в результате чего при ответе сервер не может отправить заголовки (в интересующем нас случае это заголовок ответа сервера Content-Type с указанием кодировки)
Сервер отправляет кодировку. На файлах скинов выше видно. Когда смотришь файлы (нотепад+++) которые сформированы в ручном и автоматическом режиме то есть одна строчка, которой нет в автоматическом режиме: http://prntscr.com/idiv22
На скрине желтым выделено.
Файлы никакие редактором не редактировали, вроде. Как этот BOM искать?
Это дополнительные стили, которые при открытии в браузере превращают сырой XML в более читаемый вариант, они не влияют на суть данных.
BOM можно поискать как в этой теме.
Владислав, спасибо за ответ!
по выгрузке — не грузит (((
А почему речь идет о UTF-8 когда файлы кодированы win-1251?
Здравствуйте! Проблема решена?
да, все работает
Я решил изменением кода в 1С.
Если не секрет, какая у Вас конфигурация и какое решение проблемы было?
Нам решал специалист по сайту, с форума эксперты вэбасист.
Но правили не 1С насколько я понял.
Конфигурация 1С Управление торговлей 8.3
Здравствуйте, Вас не затруднит подсказать где в коде 1С надо что то подправить?
Яна, добрый день!
У нас сломалась выгрузка и не работает как надо.
Обращались к программисту 1с — вердикт — дело в сайте.
С сайтом не знаю что делать, если найдете решение, напишите пожалуйста.
Здравствуйте, diKKI, поясните пожалуйста, решена ли проблема и в чем именно она у Вас заключалась, т.к. в своем комментарии от 27.04.18 Вы пишите, что проблема решена, ниже от той же даты Вы пишите, что вам правили не 1С а шопскрипт, а еще ниже Вы пишите, что выгрузка не работает и что проблема точно не в 1С но уже не знаете что делать с сайтом, из чего следует, что проблема не решена со стороны работы сайта.
Так как понять решена проблема или нет?
Единственное, что я понял, что это точно не с 1С проблемы, верно?
На сегодня синхронизация не работает.
Одно время работало если менять кодировку в плагине , на сервере.
Но потом и это перестало работать. Специалист (на самом деле 2 специалиста) по 1С сказал, что дело не в 1С.
Не знаю что делать.
Добавлю, хочу попробовать обновить ОС на сервере. Может это настройки веб сервера виноваты.
А у Вас только заказы не синхронизируются или товары тоже?
И где, если не секрет, на сервере меняли кодировку в плагине? и о каком плагине идет речь, о том, который интегрирован в шопскрипт?
Мы синхронизировали только заказы.
Плагин стандартный, правили вот тут: http://joxi.ru/p27QJzbSK3OMnr Работало когда ставишь utf-8.
Не поверите, но у меня заработало!)
Спасибо за помощь!
Для тех кто не понял о чем именно речь:
это кривоватое решение. После одного из обновлений плагина и 1с — работать перестало и сейчас не работает. Вернее даже так — загружаешь заказы — работает. Через час снова загружаешь — не грузит. Лезешь менять кодировку сперва на win, сохранение, потом на utf. Снова работает. Может перестать работать в любой момент. Похоже что конфликтует с кешированием, например. Нет явно выраженной ошибки или я ее не вижу.
Вообще странно, кодировка абсолютно точно должна быть utf-8, т.к. если сделать ручную выгрузку товаров с сайта или товаров и заказов, то они по дефолту экспортируются с кодировкой utf-8, и только заказы экспортировались с кодировкой win-1251, до того как я внес правки в код плагина.
У меня при этом все стабильно работает и при ручном обмене данных с 1С и при автоматическом обмене с сайтом.
В любом случае это глюк плагина, о котором я уже написал в службу тех поддержки.
Запись текста в кодировке UTF-8 без BOM средствами платформы 1С
Собствено говоря это решение мной уже было опубликовано в виде коментария к статье //infostart.ru/public/137454/
Но вчера я получил в личку письмо, из которого следует, что оно достойно отдельной публикации.
Вот собственно говоря само решение:
ЗТ = Новый ЗаписьТекста(ИмяФайла, КодировкаТекста.ANSI);
ЗТ.Закрыть();
ЗТ = Новый ЗаписьТекста(ИмяФайла. Истина, Символы.ПС);
ЗТ.Записать(Данные);
ЗТ.Закрыть();
Специальные предложения
Ты точно utf с ansi не попутал? минус заслуженный, лучше бы решение с base64 привел.
p.s.: Пользователи любых других национальных языков просто в восторге, от такого фигового решения.
(4) pumbaE, Если Вы не понимаете о чем идет речь, то нечего умничать. Для таких непонятливых поясняю: есть задача записать файл в кодировке UTF-8 без BOM, т.к. он не всегда корректно распознается сторонними приложениями, например, при передаче POST-запроса через HTTP-соединение. Приведенный алгоритм это делает наиболее простым способом. Если вам известен более простой способ, то лучше его опубликовать, чем вводить в заблуждение других людей.
Для совсем непонятливых: ВОМ это 3 символа, которые добавляются в начало файла для автоматического определения кодировки.
P.S. «Тыкать» можете своим друзьям, а здесь этого не надо делать.
(5) повторяю таблица кодировки UTF-8 содержит больше символов чем ANSI, поэтому преобразование к ANSI может не только убрать первые 3 байта, но и испортить содержание документа. В той же публикации более элегантное решение http://forum.infostart.ru/forum24/topic62033/message707087/#message707087
p.s.: это интернет, могут и послать.
(6) pumbaE, 1. В моем алгоритме НЕТ вообще нет преобразований кодировок! Прочитайте документацию по языку программирования 1С. Суть алгоритма в том, что сначала создается пустой файл в кодировке ANSI, который не содержит ВОМ, а затем к нему дописываются данные в кодировке UTF-8. Это происходит без каких-либо преобразований. Естественно, при дописывании данных ВОМ не пишется.
2. Это реально работает, сам давно использую. Прежде чем писать всякую чушь, надо было хотя бы разобраться или проверить.
3. Алгоритм с отрезанием ВОМ однозначно является более громоздким и ресурсоемким.
Перекодировка UTF из строки -> строку 1С не используя файлы
Про наличие перекодировки через файл средствами платформы знаю, знаю и:
Книга знаний: Перекодировщик из UTF-8 в Windows-1251 и обратно
Всем известно что Flash диски живут N циклов. Перезаписи N в лучшем случае
Если записей для перекодирования
3500 (по десятку килобайт), и работа на Flash то лучше, наверное, использовать перекодирование не через файл. Как?
(7) Нужен был в противположную сторону. Пока говорил тут — написал на основе сведений Wikipedia:
Функция Кодировка__UTF8_Биты(Число1,НачБит,КонБит)
(15) Всё-таки попрошу тогда проверить:
Вы не поняли — это проблема именно 8-й платформы. Из-за того, что в 8-й всё хранится в Unicode — он в виде unicode букв и попадает в VBScript, а потому не работает.
В 7-й будет работать, в 8-й — не так просто.
(20) Просьба быть внимательным. Этот код не работает в 8.0 без использования файла.
В файл сохраняется перекодированное корректно значение, но это не соответствует условиям задачи — требуется без файла.
ReadText — возвращает всегда «проверка» в неперекодированном виде.
Платформа именно 8.0?
(23) Не понятно. Переводить строку, отбрасывая разряды, бессмысленно внутри 1С. Нужно все равно куда-то выдавать данные. Я не вижу цели задачи, но еще можно запустить любой стандартный механизм, например из VBScript, приблизительно:
Кроме того, если задача решается для (0) — то в любом случае 1С пишет много временных файлов. Можно создать виртуальный диск в памяти, но тогда ничего не мешает использовать его для конвертации.
KAO, был XML с Base64 полями. Был раскодирован вручную (без использования записи в файл — Base64). И, предстоит, закодировать его обратно.
Вопрос со временными файлами буду изучать.
Наверное, тему можно закрывать т.к. мне сейчас уже проще сделать перекодировку процедурой 1С вручную (набил таблицу замен).