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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Не правильная кодировка utf8

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
superpuperlesha
Отправлено: 03 Июля, 2013 - 19:08:13
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Июль 2013  


Помог: 0 раз(а)




Привет,
в базе поле utf-8 кодировки
подключение к базе устанавливает utf8 кодировку
кодировка файла utf8.

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

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

Скажите что мне с этой строкой сделать?
Содержимое строки "Фандеев".
Спасибо.
 
 Top
esterio
Отправлено: 03 Июля, 2013 - 21:28:28
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




PHP:
скопировать код в буфер обмена
  1. header('Content-Type: text/html; charset=utf-8');
 
 Top
superpuperlesha
Отправлено: 04 Июля, 2013 - 10:33:16
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Июль 2013  


Помог: 0 раз(а)




А если к этому файлу AJAX обращается и там нельзя header делать?
Тогда как быть?
И можно пару слов о том в чем собственно проблема у меня?

(Отредактировано автором: 04 Июля, 2013 - 10:33:41)

 
 Top
avtor.fox
Отправлено: 04 Июля, 2013 - 10:38:56
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


Помог: 50 раз(а)





после подключения к базе
 
 Top
superpuperlesha
Отправлено: 04 Июля, 2013 - 12:25:24
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Июль 2013  


Помог: 0 раз(а)




avtor.fox пишет:
после подключения к базе


Конечноже Я делаю после конекта к БД.

Есть варианты может быть как преобразовать строки...?
 
 Top
vanicon
Отправлено: 04 Июля, 2013 - 12:29:22
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


Помог: 17 раз(а)




superpuperlesha
Может сама бд не в utf-8?
Тогда вам нужен iconv, а еще лучше поменять кодировку в бд


-----
Так было, так есть и так будет
 
 Top
esterio
Отправлено: 04 Июля, 2013 - 13:13:39
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




ajax ет также http запрос и хидеры также надсилаються
 
 Top
superpuperlesha
Отправлено: 04 Июля, 2013 - 16:44:01
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Июль 2013  


Помог: 0 раз(а)




esterio пишет:
ajax ет также http запрос и хидеры также надсилаються

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

пример: http://uchet.sandart.com.ua/111.php

(Отредактировано автором: 04 Июля, 2013 - 16:45:36)

 
 Top
esterio
Отправлено: 04 Июля, 2013 - 16:47:27
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




mb_strlen
UTF-8 многобайтова кодировка. Кирилица в ней занимает два байта.
Функция strlen расчитана на однобайтовые кодировкы типа CP1251, и считает количество байт в строке.
Так как каждый символ кирилицы занимает два байта strlen возвращает strlen * 2 (если имеються только символы а-я и А-Я) количиство символов
 
 Top
superpuperlesha
Отправлено: 04 Июля, 2013 - 16:47:50
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Июль 2013  


Помог: 0 раз(а)




vanicon пишет:
superpuperlesha
Может сама бд не в utf-8?
Тогда вам нужен iconv, а еще лучше поменять кодировку в бд


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


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



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




superpuperlesha пишет:
К. буду делать SUBSTR() с умножением на 2. Спасибо за header() хоть както решили вопрос. СПАСИБО!

Решения изначально не верно. вместо substr есть mb_substr.
в общем юзайте mb_* функции
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Кодировки и все смежное »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB