Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Не правильная кодировка utf8
Форумы портала PHP.SU » » Кодировки и все смежное » Не правильная кодировка utf8

Страниц (1): [1]
 

1. superpuperlesha - 03 Июля, 2013 - 19:08:13 - перейти к сообщению
Привет,
в базе поле utf-8 кодировки
подключение к базе устанавливает utf8 кодировку
кодировка файла utf8.

Выводит правильные символы разбавленные какимито ненужными,
функция mb_detect_encoding определяет кодировку utf8

тут пример вывода: http://uchet[dot]sandart[dot]com[dot]ua/111.php

Скажите что мне с этой строкой сделать?
Содержимое строки "Фандеев".
Спасибо.
2. esterio - 03 Июля, 2013 - 21:28:28 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. header('Content-Type: text/html; charset=utf-8');
3. superpuperlesha - 04 Июля, 2013 - 10:33:16 - перейти к сообщению
А если к этому файлу AJAX обращается и там нельзя header делать?
Тогда как быть?
И можно пару слов о том в чем собственно проблема у меня?
4. avtor.fox - 04 Июля, 2013 - 10:38:56 - перейти к сообщению

после подключения к базе
5. superpuperlesha - 04 Июля, 2013 - 12:25:24 - перейти к сообщению
avtor.fox пишет:
после подключения к базе


Конечноже Я делаю
CODE (SQL):
скопировать код в буфер обмена
  1. SET NAMES UTF8
после конекта к БД.

Есть варианты может быть как преобразовать строки...?
6. vanicon - 04 Июля, 2013 - 12:29:22 - перейти к сообщению
superpuperlesha
Может сама бд не в utf-8?
Тогда вам нужен iconv, а еще лучше поменять кодировку в бд
7. esterio - 04 Июля, 2013 - 13:13:39 - перейти к сообщению
ajax ет также http запрос и хидеры также надсилаються
8. superpuperlesha - 04 Июля, 2013 - 16:44:01 - перейти к сообщению
esterio пишет:
ajax ет также http запрос и хидеры также надсилаються

Спасибо помогло добавление header,
теперь фамилия действительно отображается,
но колличество символов в 2 раза больше,
помогите последний шаг сделать -))

пример: http://uchet[dot]sandart[dot]com[dot]ua/111.php
9. esterio - 04 Июля, 2013 - 16:47:27 - перейти к сообщению
mb_strlen
UTF-8 многобайтова кодировка. Кирилица в ней занимает два байта.
Функция strlen расчитана на однобайтовые кодировкы типа CP1251, и считает количество байт в строке.
Так как каждый символ кирилицы занимает два байта strlen возвращает strlen * 2 (если имеються только символы а-я и А-Я) количиство символов
10. superpuperlesha - 04 Июля, 2013 - 16:47:50 - перейти к сообщению
vanicon пишет:
superpuperlesha
Может сама бд не в utf-8?
Тогда вам нужен iconv, а еще лучше поменять кодировку в бд


iconv не помогает, а база в UTF8.
помогает сменить кодировку страницы на ANSI ,
но тогда другие троблы начинаются.
(Добавление)
esterio пишет:
mb_strlen
UTF-8 многобайтова кодировка. Кирилица в ней занимает два байта.
Функция strlen расчитана на однобайтовые кодировкы типа CP1251, и считает количество байт в строке.
Так как каждый символ кирилицы занимает два байта strlen возвращает strlen * 2 (если имеються только символы а-я и А-Я) количиство символов


ОК. буду делать SUBSTR() с умножением на 2. Спасибо за header() хоть както решили вопрос. СПАСИБО!
11. esterio - 04 Июля, 2013 - 17:31:57 - перейти к сообщению
superpuperlesha пишет:
К. буду делать SUBSTR() с умножением на 2. Спасибо за header() хоть както решили вопрос. СПАСИБО!

Решения изначально не верно. вместо substr есть mb_substr.
в общем юзайте mb_* функции

 

Powered by ExBB FM 1.0 RC1