[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: utf-8 без Bom меняет кодировку в файле
gap84
такая проблема.

Скрипт записывает информации на русском в файл. Затем другой скрипт читает инфу из этого файла и делает сравнение строк.

При использовании кодировки utf-8 все нормально, но появляется

Warning: Cannot modify header information - headers already sent by ....

Для решения использую utf-8 без Bom. Warning устраняется, однако второй скрипт показывает, что информация в файле, созданном первым скриптом не в той кодировке (не в UTF-8 а в ASCII). Как следствие сравнение строк работает неверно.

Help!!! Не могу оставить все в UTF-8 так как используется аунтефикация пользователя через session_start() и при Warning: Cannot modify header information - headers already sent by аутенфикация иногда может не работать.

А utf-8 без Bom портит кодировку файла -> сравнение строк не работает.

Как решить проблему?







Спустя 18 минут, 38 секунд (22.03.2012 - 09:59) twin написал(а):
Полностью покажи ошибку. Там видно строчку, на которой проблема.

Спустя 13 минут, 55 секунд (22.03.2012 - 10:13) gap84 написал(а):
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/wm2056/public_html/advanced/fb/index.php:1) in /home/wm2056/public_html/advanced/fb/facebook.php on line 37

Ну это из-за Bom. Т.е. если сохраняю файл как utf-8 без Bom через Notepad++, то это исчезает.

Однако при этом русский текст в файл записывается в другой кодировке и далее при сравнение строк невозможно найти одинаковые

Спустя 6 минут (22.03.2012 - 10:19) twin написал(а):
У файла нет кодировки. Кодировка есть у символов. В какой кодировке записывешь, в такой и читаешь. Смотри скрипт внимательно.

Спустя 8 минут, 34 секунды (22.03.2012 - 10:28) gap84 написал(а):
Тогда такой вопрос.

Я получаю динамически строки (в ответ на запрос от Google).

Как наверняка записать их в файл в UTF-8?

Пробовал функции iconv, mb_convert_encoding, однако, нормального результата не получил.

Спустя 1 час, 57 минут, 57 секунд (22.03.2012 - 12:26) gap84 написал(а):
mb_detect_encoding показывает, что кодировка символов строки перед записью в файл ASCII.

Пробую перекодировать в UTF-8 так:

$line_converted = mb_convert_encoding($line, "UTF-8", "ASCII");

Смотрю mb_detect_encoding($line_converted) но она опять ASCII.

Как переконвертировать строку в ASCII на UTF-8 ?

Спустя 14 минут, 25 секунд (22.03.2012 - 12:40) Rigel написал(а):
gap84
utf8_encode() пробовал?

Спустя 54 минуты, 4 секунды (22.03.2012 - 13:34) gap84 написал(а):
Цитата (Rigel @ 22.03.2012 - 09:40)
gap84
utf8_encode() пробовал?

не помогает - кодировка все равно ASCII

Спустя 12 минут, 37 секунд (22.03.2012 - 13:47) Visman написал(а):
$line_converted = mb_convert_encoding($line, 'UTF-8', 'auto');

Спустя 5 минут, 59 секунд (22.03.2012 - 13:53) gap84 написал(а):
Цитата (Visman @ 22.03.2012 - 10:47)
$line_converted = mb_convert_encoding($line, 'UTF-8', 'auto');

ниче не дает

Спустя 2 минуты, 55 секунд (22.03.2012 - 13:56) Visman написал(а):
gap84, а у тебя там русские буквы есть, в строке?

Спустя 5 минут, 53 секунды (22.03.2012 - 14:02) gap84 написал(а):
Вообщем так.

Кодировка первого скрипта UTF-8.
Кодировка строк перед записью в файл ASCII как на скриншоте выше.

При чтении файла вторым скриптом все нормально (скриншот ниже)


Спустя 2 минуты, 58 секунд (22.03.2012 - 14:04) gap84 написал(а):
Вот он

Спустя 3 минуты, 53 секунды (22.03.2012 - 14:08) gap84 написал(а):
Кодировка первого скрипта UTF-8 без BOM
Кодировка строк перед записью в файл также ASCII как на скриншоте выше.

При чтении файла вторым скриптом получаем ромбики (скриншот ниже)

Что за хр....?

Спустя 3 минуты, 46 секунд (22.03.2012 - 14:12) Rigel написал(а):
в htaccess надеюсь кодировка прописана?

Спустя 4 минуты, 5 секунд (22.03.2012 - 14:16) gap84 написал(а):
Если строки в кодировке ASCII записаны в файл в обоих случаях, то по идее я должен их при чтении из файла получить хотя бы в одинаковом виде? (например в обоих случаях в виде ромбиков или в обоих случаях в нормальном виде)

Или я не прав?

Спустя 3 минуты, 48 секунд (22.03.2012 - 14:20) gap84 написал(а):
Цитата (Rigel @ 22.03.2012 - 11:12)
в htaccess надеюсь кодировка прописана?

как это посмотреть? я на хостинге и не вижу htaccess

Спустя 56 минут, 34 секунды (22.03.2012 - 15:17) twin написал(а):
Файлик можно посмотреть?

Спустя 59 минут, 4 секунды (22.03.2012 - 16:16) gap84 написал(а):
первый скрипт, кот. создает файл

Спустя 4 минуты, 43 секунды (22.03.2012 - 16:20) Rigel написал(а):
gap84
в папке с файлом .php попробуй создать файл .htaccess (только расширение) с содержимым:
AddDefaultCharset utf-8

Спустя 3 минуты, 46 секунд (22.03.2012 - 16:24) twin написал(а):
Цитата (gap84 @ 22.03.2012 - 13:16)
первый скрипт, кот. создает файл

Не, сам файл, который кривой.

Спустя 18 часов, 14 минут, 56 секунд (23.03.2012 - 10:39) gap84 написал(а):
Цитата (Rigel @ 22.03.2012 - 13:20)
gap84
в папке с файлом .php попробуй создать файл .htaccess (только расширение) с содержимым:
AddDefaultCharset utf-8

Ура!!! Помогло. Спасибо Rigel.

Всем большое спасибо за помощь.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.