При сохранении в базу портится UTF-8 (известный баг), как бороться?

Rusmikle

Новичок
При сохранении в базу портится UTF-8 (известный баг), как бороться?

описание бага тут http://bugs.php.net/bug.php?id=33198
При сохранении в базу портится UTF-8
на локальном компе и на компе другого провайдера решил проблему просто
прописал в .htacsess
php_value default_charset none
php_value default_mimetype "text/html"
php_admin_value output_buffering 4096
php_admin_value output_handler none
и все заработало как по маслу
у этого же после изменения .htacsess при первом обращении к скрипту
вываливается внутренняя ошибка сервера
попробовал переделать через код
PHP:
ini_set("default_charset", "");
ini_set("default_mimetype", "text/html");
ini_set("output_buffering", "4096");
ini_set("output_handler", "");
output_buffering упорно не изменяется на новое значение
хотя, например, default_charset меняется без проблем
что ещё тут можно предпринять
учитывая что доступа к php.ini и к httpd.conf нет и не будет
и пинать или отказываться от провайдера нет возможности
короче как ещё можно попробовать выйти из положения программно?
п.с.
PHP:
Header('Content-Type: text/html; charset=utf-8');
в коде стоит. Ну и кодировка понятно на страничке тоже :)
на сервере PHP Version 5.0.4
System Linux pre005.lifemedien.de
Server API CGI
mysql Client API version 4.1.10a
Apache/1.3.33
 

slach

Новичок
ключевые слова
1) Server API CGI - следовательно можно забить IMHO на .htaccess, он НЕ БУДЕТ знать про директивы php_value и т.п.

2) output_buffering нельзя менять в РАНТАЙМЕ изнутри php скрипта

3) чета я так и не понял в ЧЕМ именно бага то??? там про MySQL данные чтото ничего не сказано, типа utf-8 BOM аббревиатура в PHP файле мешает жить? или что? или данные тебе в скрипт приходят НЕ в utf8?
 

Rusmikle

Новичок
в скрипт приходят в utf-8
а после сохранения в таблицу возвращаются уже в другой кодировке, таблица 100% в utf-8
была ита же проблемма на локальной машине и ещё у одного провайдера
вылечилась через
php_admin_value output_buffering 4096 в .htaccess

как я понял остаётся только php.ini ?
млин, а у меня нет прав его менять :( или есть ещё какая возможность?

-~{}~ 25.04.06 17:04:

написал провайдеру но 100% не изменит php.ini :(
 

slach

Новичок
чего то я вообще не понимаю, причем тут output_buffering??
цитата из мануала http://ru.php.net/manual/en/ref.outcontrol.php

As of PHP 4.3.5, this directive is always Off in PHP-CLI.

1) как проверяешь что данные приходят в скрипт в utf-8 ??
2) mysql_query('SET NAMES utf8') делаешь?
 

Rusmikle

Новичок
1. вывожу на страничке с кодировкой всю строку запроса к базе в которой в том числе и текст этот стоит
2. базе шлю конечно и SET NAMES 'utf8 и SET CHARACTER SET 'utf8'
а изменение output_buffering 100% помогает, опробовано уже на нескольких серверах, когда то раньше ещё кто то подсказал на irc канале
а в чем суть и почему output_buffering сказать точно не могу, забыл уже
 

Rin

*
Ну и дела, а я что-то не замечал этого бага, хотя с UTF-8 работаю около 1,5 лет.
 
Сверху