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

  • Автор темы Автор темы MipH
  • Дата начала Дата начала

MipH

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

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

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

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

Те.е. он отсчитывает не по символам, а по байтам, отведенным на эти символы (для русского 2, для английского 1). Что посоветуете, как нормально подруиться с utf-8?
 
На весь сервер cp1251_general_ci
На БД, где данная таблица utf8_general_ci(пробовал и cp1251_general_ci)
На таблице (с полями) utf8_general_ci(пробовал и cp1251_general_ci, и utf8_unicode_c)
 
cp1251_general_ci -это не кодировка а колейшен
что мешает default-character-set в utf8 выставить ?
 
character set client cp1251
character set connection cp1251
character set database cp1251
character set results cp1251
character set server cp1251
character set system utf8

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

-~{}~ 29.04.05 15:51:

MySQL 4.1.11
 
идея все таже выставить default-character-set в utf8
выставляется это в my.cnf
 
Это на всю БД, т.е. весь сервер что ли? Так нельзя,там другие проекты крутятся в обычной виндовой кодировке.

-~{}~ 03.05.05 12:12:

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

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

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

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

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

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