Функция LEFT странно работает с данным в коде UTF-8

MipH

Guest
Функция LEFT странно работает с данным в коде UTF-8

Искал, ничего не нашел на форуме.

Создала таблица в БД такого типа TYPE = MYISAM CHARACTER SET utf8;
Соответственно данные издампа в нее перекинуты тоже в UTF-8 и весь веб-проект, который берет данные из этой таблицы, в той же кодировке оторажается нормально.

Мне понадобилось выполнить запрос с использованием фунции select left(Field,6)...
Происходит следующая картинка:
TestTestTest - TestTe
Аскетичный - Аск

Те.е. он отсчитывает не по символам, а по байтам, отведенным на эти символы (для русского 2, для английского 1). Что посоветуете, как нормально подруиться с utf-8?
 

MipH

Guest
На весь сервер cp1251_general_ci
На БД, где данная таблица utf8_general_ci(пробовал и cp1251_general_ci)
На таблице (с полями) utf8_general_ci(пробовал и cp1251_general_ci, и utf8_unicode_c)
 

Demiurg

Guest
cp1251_general_ci -это не кодировка а колейшен
что мешает default-character-set в utf8 выставить ?
 

MipH

Guest
character set client cp1251
character set connection cp1251
character set database cp1251
character set results cp1251
character set server cp1251
character set system utf8

На что ее поставить? На БД или на весь сервер?
А если на БД, то как?
 

MipH

Guest
Ну это из PMA, там есть "Показать системные переменные MySQL ".
В общем, есть идеи?

-~{}~ 29.04.05 15:51:

MySQL 4.1.11
 

Demiurg

Guest
идея все таже выставить default-character-set в utf8
выставляется это в my.cnf
 

MipH

Guest
Это на всю БД, т.е. весь сервер что ли? Так нельзя,там другие проекты крутятся в обычной виндовой кодировке.

-~{}~ 03.05.05 12:12:

А что вы скажете о том, что при вставке данных из веб-форм (постом из формы в БД) они вставляются в utf-8 и в том же PMA видны как "Тестовый".

Кога же я пытаюсь сделать LOAD DATA из файла в UTF-8 (всеотлично импортируется), то в PMA мне все отображается в нормальнмо виде (читабельном), а на сайте все знаками Вопросов? Будто они там вовсе не в UTF из файла пишутся.
 

slach

Новичок
судя по переменным которые ты привел

utf8 у тебя только для системы

а для всего остального выставлен 1251
в том числе и для базы
и для таблиц
и для коннекшиона

по идее как минимум
для results, connection и database надо проставлять utf8

через SET NAMES utf8 или еще как ... но можно...
 

MipH

Guest
да
вот что помогло: mysql_query(“set charset utf8”);
 
Сверху