Страница 1 из 2

Кодировка

Добавлено: 17 фев 2016, 14:06
aukon
Добрый день.

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

Спасибо. 17.02.2016

Re: Кодировка

Добавлено: 18 фев 2016, 00:24
nhutils
Добрый день, это не лишние символы, это BOM.

Re: Кодировка

Добавлено: 18 фев 2016, 07:09
aukon
Добрый день. 18.02.16

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

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

Спасибо

Re: Кодировка

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

Re: Кодировка

Добавлено: 19 фев 2016, 06:16
aukon
>nhrplc всегда пишет utf-8 с BOM (при конвертации кодировки в utf-8).

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

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

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

Re: Кодировка

Добавлено: 19 фев 2016, 07:22
nhutils
Вы же не пишете, как пробовали и почему не получилось.

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

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

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

Re: Кодировка

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

20.02.2016

Re: Кодировка

Добавлено: 20 фев 2016, 12:44
nhutils
Спасибо!

Re: Кодировка

Добавлено: 24 фев 2016, 10:04
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Скрипты писать не умею.
Последний предложенный вариант меня не устраивает.
Спасибо.

Re: Кодировка

Добавлено: 24 фев 2016, 13:12
nhutils
Добрый день, во вложении пример cmd файла, который удаляет BOM последовательность из файла utf-8.