Кодировка

Обсуждение программы nhrt - замена текста в файлах (прежнее название nhrplc)
aukon
Сообщения: 7
Зарегистрирован: 17 фев 2016, 13:53

Кодировка

Сообщение aukon »

Добрый день.

При переводе файла из кодировки 866 в utf8 (nhrplc -cp:866,utf8 k1.txt)
в начаде первой строки появляются "лишние" символы "я┐┐".
Подскажите, м.б., опции, чтобы они не появлялись.

Спасибо. 17.02.2016

nhutils
Сообщения: 582
Зарегистрирован: 09 дек 2009, 18:08
Контактная информация:

Re: Кодировка

Сообщение nhutils »

Добрый день, это не лишние символы, это BOM.

aukon
Сообщения: 7
Зарегистрирован: 17 фев 2016, 13:53

Re: Кодировка

Сообщение aukon »

Добрый день. 18.02.16

> это не лишние символы, это BOM.

По спецификации, его использование не является обязательным.
Потребность в маркере последовательности байтов не возникает при обмене документами, поскольку
в тексте файла 1-ой строкой идет текст <?xml version="1.0" encoding="UTF-8"?> .
Используя nhrplc, пыталась заменить эти символы пробелами, удалить - у меня не получилось.
Или все-таки возможно?

Спасибо

nhutils
Сообщения: 582
Зарегистрирован: 09 дек 2009, 18:08
Контактная информация:

Re: Кодировка

Сообщение nhutils »

nhrplc всегда пишет utf-8 с BOM (при конвертации кодировки в utf-8), это сделано нарочно, чтобы кодировка utf-8 определялась везде, поэтому и опции для записи utf-8 без BOM не было предусмотрено.
В вашем случае чем мешают эти байты? даже блокнот в Win 7 правильно обрабатывает BOM.

aukon
Сообщения: 7
Зарегистрирован: 17 фев 2016, 13:53

Re: Кодировка

Сообщение aukon »

>nhrplc всегда пишет utf-8 с BOM (при конвертации кодировки в utf-8).

То, что nhrplc всегда пишет utf-8 с BOM (при конвертации кодировки в utf-8)
я убедилась. Мне бы не хотелось повторяться...

Для обмена предписан определенный формат сообщений, в котором BOM не предусмотрен.
Проверять примут ли сообщение с данным BOM не хочу: не тот уровень обмена.
К нам поступают utf8-сообщения без BOM !

nhreplace v2.8.0
У меня возникла трудность при работе с программой nhrplc замены символов
типа BOM в тексте.
Пыталась заменить эти символы пробелами, удалить - не получилось.
Подскажите.

nhutils
Сообщения: 582
Зарегистрирован: 09 дек 2009, 18:08
Контактная информация:

Re: Кодировка

Сообщение nhutils »

Вы же не пишете, как пробовали и почему не получилось.

Через замену или удаление в nhrplc можно попробовать сделать через поиск строки, если обрабатывать файл как oem или как ansi.

Можно ещё попробовать удалять первые три символа файла через простой скрипт на WSH (OpenTextFile, …), если открывать его как однобайтовый.

Ещё можно попробовать сделать преобразование oem в utf8 через функцию подстановки файла Объединение файлов разных кодировок, если взять за основу ваш формат utf-8 файла (т.е. без BOM) и подставлять в него текст из oem файла, потому что начиная с nhreplace v2.6.1, запись BOM в выходной файл производится только при наличии в исходном.

aukon
Сообщения: 7
Зарегистрирован: 17 фев 2016, 13:53

Re: Кодировка

Сообщение aukon »

Использовала 1 -ый способ, получилось не сразу...
Вопрос решен.
Пздравляю с наступающим 23 февраля.

20.02.2016

nhutils
Сообщения: 582
Зарегистрирован: 09 дек 2009, 18:08
Контактная информация:

Re: Кодировка

Сообщение nhutils »

Спасибо!

aukon
Сообщения: 7
Зарегистрирован: 17 фев 2016, 13:53

Re: Кодировка

Сообщение aukon »

Добрый день.

Возвращаюсь к старой теме.
Текст файла
я╗┐<KVIT> я╗┐
<ES></ES>
<SIZE_ES>15</SIZE_ES>
<DATE_ES>11/072014</DATE_ES>

Пытаюсь удалить из файла "я┐┐":
call D:\UST_KOD\NHRPL\nhrplc.exe -spt:"я┐┐" -t:"" file.h -cp:oem
Не получается.
В параметре -cp: испробовала разные варианты...
mСкрипты писать не умею.
Последний предложенный вариант меня не устраивает.
Спасибо.

nhutils
Сообщения: 582
Зарегистрирован: 09 дек 2009, 18:08
Контактная информация:

Re: Кодировка

Сообщение nhutils »

Добрый день, во вложении пример cmd файла, который удаляет BOM последовательность из файла utf-8.
Вложения
remove_utf8_bom.zip
(636 байт) 88 скачиваний

Закрыто