powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / BOM при сохранении кодировки utf-8
19 сообщений из 19, страница 1 из 1
BOM при сохранении кодировки utf-8
    #38071446
Kreol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую форумчане.
Прошу помощи в вопросе с перекодированием.
Написал скрипт для автоперевода при помощи сервиса bing
Изначально он был написан для перевода через copy-paste
на страничке отображалось текстовое поле и туда копировали наш перевод.
Задумалось не занимаясь копипастом работать прямо с файлом.
открыть файл - считать в текстовое поле - перевести - записать перевод.
И вот тут пошли грабли.
Файл изначально в кодировке UNIX ANSI с переносами строк 0x0A
при записи файла в массив, он перекодируется в ANSII
после прохождения через api переводчика текст становится utf-8
но при формировании результата он опять превращается в ASCII
И все бы хорошо, но при записи в файл перевода он перед переведенной строкой вставляет 3 байта BOM(не вначале файла).
\xEF\xBB\xBF - видно лишь в 16h
иногда можно увидеть и в поле перевода.

Итак вопрос как мне ПРОГРАММНО (не надо меня посылать руками конвертировать в Notepad++) удалять BOM а еще лучше вообще его не получать.
Результирующий файл должен быть лучше конечно в чистом UTF-8 без BOM либо в UNIX ANSI
не настаивать на использовании iconv и других кодировщиков в контексте "А чем Вам iconv не угодил?" без самостоятельной проверки не рекомендуется.
Извините если дерзко написал, но хочется конструктивных ответов, а не воду, которую я и так уже на протяжении дня перечитал и перепробовал. Хотя все может оказаться куда более проще либо наоборот.

Используется denwer 5.3 + eclipse
скрипт большой выкладываю так
https://www.dropbox.com/s/syy02y7vkcr6vu4/index111.rar
С ув. Антон.
...
Рейтинг: 0 / 0
BOM при сохранении кодировки utf-8
    #38071583
Kreol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если делать телодвижения через буфер, то все работает(
...
Рейтинг: 0 / 0
BOM при сохранении кодировки utf-8
    #38071603
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kreolскрипт большойХорошо что предупредили. Вряд ли найдутся желающие разбираться в _большом_ скрипте.
...
Рейтинг: 0 / 0
BOM при сохранении кодировки utf-8
    #38071620
Kreol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну не настолько он большой, просто в 100кб не вместится.
А если бы кто подсказал куда смотреть...
...
Рейтинг: 0 / 0
BOM при сохранении кодировки utf-8
    #38071665
phpz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kreol,

Не проверял, но идея такая:

Код: php
1.
2.
$BOM = pack("CCC",0xef,0xbb,0xbf);
$text = str_replace($BOM,"",$text);
...
Рейтинг: 0 / 0
BOM при сохранении кодировки utf-8
    #38071666
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: php
1.
Итак вопрос как мне ПРОГРАММНО (не надо меня посылать руками конвертировать в Notepad++) удалять BOM а еще лучше вообще его не получать.


Прочитать первые 4 байта и поглядеть что в них, если это БОМ, то удалить.
...
Рейтинг: 0 / 0
BOM при сохранении кодировки utf-8
    #38071667
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или 3 ли их там
...
Рейтинг: 0 / 0
BOM при сохранении кодировки utf-8
    #38071707
Kreol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник

прикрепил файл с BOm
помогите удалить.
Bom не вначале, он будет перед каждой строкой перевода
...
Рейтинг: 0 / 0
BOM при сохранении кодировки utf-8
    #38071714
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kreol,

Это 13603065 не работает?
...
Рейтинг: 0 / 0
BOM при сохранении кодировки utf-8
    #38071729
Kreol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: php
1.
2.
3.
4.
$f = fopen("C:\1.po","r");
$BOM = pack("CCC",0xef,0xbb,0xbf);
$data = str_replace($BOM,"",$f);
file_put_contents('111.po', $data);


не работает.
...
Рейтинг: 0 / 0
BOM при сохранении кодировки utf-8
    #38071730
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мдяяя....
...
Рейтинг: 0 / 0
BOM при сохранении кодировки utf-8
    #38071796
Kreol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а без сарказма?
...
Рейтинг: 0 / 0
BOM при сохранении кодировки utf-8
    #38071801
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Без сарказма - все плохо.
...
Рейтинг: 0 / 0
BOM при сохранении кодировки utf-8
    #38071806
Kreol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а я с этой кодтровкой не соврать сутки уже сижу, и мне уже плакать охота и отказатся от поиска решений.
...
Рейтинг: 0 / 0
BOM при сохранении кодировки utf-8
    #38071813
phpz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kreol
Код: php
1.
2.
3.
4.
$f = fopen("C:\1.po","r");
$BOM = pack("CCC",0xef,0xbb,0xbf);
$data = str_replace($BOM,"",$f);
file_put_contents('111.po', $data);


не работает.

а я с этой кодтровкой не соврать сутки уже сижу, и мне уже плакать охота и отказатся от поиска решений.
Утро вечера мудренее, а если нет то

fopen + fread + fclose = святая троица
...
Рейтинг: 0 / 0
BOM при сохранении кодировки utf-8
    #38071823
Kreol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поэкспериментировав прошу опять помощи.
Итак:
текст получает BOM вначале строки после похода на сайт за переводом.
Если после этого удалить BOM то все превращается в кракозяблики.
при открытии программой poedit.exe
...
Рейтинг: 0 / 0
BOM при сохранении кодировки utf-8
    #38071825
Kreol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
файл после получки.

и скрин из poedit
...
Рейтинг: 0 / 0
BOM при сохранении кодировки utf-8
    #38072017
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kreolфайл после получки.

и скрин из poeditТекст из прилагаемого файла - в utf-8. Ваш poedit понимает многобайтовую кодировку?
...
Рейтинг: 0 / 0
BOM при сохранении кодировки utf-8
    #38072122
Kreol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да может поддерживать http://img850.imageshack.us/img850/1839/66509683.jpg
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / BOM при сохранении кодировки utf-8
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]