Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Не меняется кодировка изначально UTF8

Не меняется кодировка изначально UTF8
Я
   1c_solop
 
16.03.20 - 08:12
ТекстДокумент = Новый ТекстовыйДокумент;
ТекстДокумент.Прочитать(ОбъектС.Каталог+"\456.xml");
кодировка = КодировкаТекста.ANSI;
ТекстДокумент.Записать(ОбъектС.Каталог+"\457.txt", кодировка);
 
 
   1c_solop
 
1 - 16.03.20 - 08:13
UTF8 на ANSI
   Кирпич
 
2 - 16.03.20 - 08:33
Да прям. У всех меняется, а у тебя нет?
Небось в файле encoding="UTF-8" написано
   Сияющий в темноте
 
3 - 16.03.20 - 08:40
а читаешь ты в ней же?
utf8 вполне себе ansi,если глазами не смотреть.
   Сияющий в темноте
 
4 - 16.03.20 - 08:42
по умолчанию у текста кодировка utf16,но должен определять по Byte Order Mark.
опять же,отсутствие нулей часто рассматривается как ansi.
   Кирпич
 
5 - 16.03.20 - 08:44
так попробуй

ТекстДокумент.Прочитать(ОбъектС.Каталог+"\456.xml",КодировкаТекста.UTF8);
   1c_solop
 
6 - 16.03.20 - 08:45
3 при открытии нормально читается 
<?xml version="1.0" encoding="UTF-8"?>
<basketcreate>
    <order number='FR_7952'>
    <error error='pvzcode' errorCode='28' errorMessage='Отсутствует код ПВЗ' />
    <error error='date' errorCode='17' errorMessage='Прием заявок на эту дату указанным способом доставки завершился.' />
    <error error='quantity' errorCode='21' errorMessage='Отправлять многоместные заказа невозможно при доставке через партнеров' 
При выводе через 1с
<?xml version="1.0" encoding="UTF-8"?>
<basketcreate>
    <order number='FR_7952'>
    <error error='pvzcode' errorCode='28' errorMessage='Отсутствует РєРѕРґ РџР’Р—' />
    <error error='date' errorCode='17' errorMessage='Прием заявок РЅР° эту дату указанным СЃРїРѕСЃРѕР±РѕРј доставки завершился.' />


При открытии файла кодировка стоит старая
   acht
 
7 - 16.03.20 - 08:45
(0) Юлия Сергеевна, а у вас хоть русские буквы-то в этом файле есть?
   acht
 
8 - 16.03.20 - 08:47
<?xml version="1.0" encoding="UTF-8"?>

Не просто так написано
   1c_solop
 
9 - 16.03.20 - 08:50
Файл = Новый ЧтениеТекста(ОбъектС.Каталог+"\456.txt",КодировкаТекста.ANSI);

 ВесьФайлОднойСтрокой = Файл.Прочитать();
 Сообщить(ВесьФайлОднойСтрокой);
   1c_solop
 
10 - 16.03.20 - 08:51
(8) Сейчас попробую поменять
   1c_solop
 
11 - 16.03.20 - 08:56
не помогло.
   Кирпич
 
12 - 16.03.20 - 08:57
Просто, при открытии файла, 1с определяет его как ANSI, потому что в файле нет BOM. Нужно явно указать кодировку при открытии как в (5)
   1c_solop
 
13 - 16.03.20 - 09:07
(12) не помогло
   1c_solop
 
14 - 16.03.20 - 09:07
ТекстДокумент.ПолучитьСтроку(5)    "   <error error='date' errorCode='17' errorMessage='Прием заявок РЅР° эту дату указанным СЃРїРѕСЃРѕР±РѕРј доставки завершился.' />"    Строка
   ptiz
 
15 - 16.03.20 - 09:11
(14) Читай в "правильной" кодировке, потом делай ПолучитьСтроку() и записывай в новый ТекстовыйДокумент.
   Кирпич
 
16 - 16.03.20 - 09:33
(13) значит файл не UTF-8
   1c_solop
 
17 - 16.03.20 - 11:33
(15) ТекстДокумент = Новый ТекстовыйДокумент;

кодировка = КодировкаТекста.ANSI;
ТекстДокумент.Прочитать(ОбъектС.Каталог+"\456.xml",Кодировка);
текст=ТекстДокумент.ПолучитьСтроку(5);
Сообщить(Текст);

Что не так?
   Кирпич
 
18 - 16.03.20 - 11:40
(17) ёпрст
ТекстДокумент = Новый ТекстовыйДокумент;
ТекстДокумент.Прочитать(ОбъектС.Каталог+"\456.xml",КодировкаТекста.UTF8);
ТекстДокумент.Записать(ОбъектС.Каталог+"\457.txt", КодировкаТекста.ANSI);
   Кирпич
 
19 - 16.03.20 - 11:41
это если 456.xml действительно в UTF8

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.