Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Utf-8 и mysql
 
 автор: not detected   (28.01.2008 в 11:34)   письмо автору
 
 

Такой трабл-> есть таблица
CREATE TABLE test(msg VARCHAR(255)) ENGINE=MyISAM CHARACTER SET utf8
Из скрипта test.php происходит вставка значений в поле msg таблицы.
Дык вот, когда пытаюсь вставить текст в 255 символов происходит следущее: текст обрезается до 128 символов. Почему? Ведь я указал что таблица будет в utf-8 . Или этого не достаточно?

   
 
 автор: Loki   (28.01.2008 в 12:03)   письмо автору
 
   для: not detected   (28.01.2008 в 11:34)
 

только что вставил 250 русских символов в аналогичное поле. mysql5.

   
 
 автор: not detected   (28.01.2008 в 12:12)   письмо автору
 
   для: Loki   (28.01.2008 в 12:03)
 

Хм... А у меня текст (сплошной набор из русских букв в utf-8) образается ровно на половину. Что то не так.

   
 
 автор: Loki   (28.01.2008 в 12:18)   письмо автору
 
   для: not detected   (28.01.2008 в 12:12)
 

не понял вопроса. у меня в аналогичное поле вставляется 255 символов.


CREATE TABLE test (
  test varchar(255) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO test (test) VALUES 
('абвгдежзикабвгдежзикабвгдежзикабвгд ежзика
бвгдежзикабвгдежзикабвгдежзикабвгде жзикабвг
дежзикабвгдежзикабвгдежзикабвгдежзи кабвгдеж
зикабвгдежзикабвгдежзикабвгдежзикаб вгдежзик
абвгдежзикабвгдежзикабвгдежзикабвгд ежзикабв
гдежзикабвгдежзикабвгдежзикабвгдежз икабвгд');

   
 
 автор: not detected   (28.01.2008 в 12:21)   письмо автору
 
   для: Loki   (28.01.2008 в 12:18)
 

>не понял вопроса. у меня в аналогичное поле вставляется 255 символов.
Вопрос в том как в поле типа VARCHAR записать строку из 255 символов (кириллица, utf-8), чтоб эта строка не обрезалась.

Попробовал вместо CHARACTER SET utf8 поставить DEFAULT CHARSET=utf8
А в ответ ошибка->
sql-error: #1064: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'DEFAULT CHARSET=utf8 '

   
 
 автор: not detected   (28.01.2008 в 12:45)   письмо автору
 
   для: not detected   (28.01.2008 в 12:21)
 

У меня стоит версия 4.0.27 (посмотрел через phpMyAdmin) . Может причина в этом?
//Похоже что да :(
"...MySQL начал поддерживать unicode только с версии 4.1.x, т.е. до этого поддержки юникода не было..." .
Есть ли выход из этого, кроме каг обновления версии mysql'а?

   
 
 автор: Loki   (28.01.2008 в 13:06)   письмо автору
 
   для: not detected   (28.01.2008 в 12:45)
 

VARCHAR Data Type: The effective maximum length of a VARCHAR column was increased to 65,535 bytes, and stripping of trailing whitespace was eliminated. (The actual maximum length of a VARCHAR is determined by the maximum row size and the character set you use. The maximum effective column length is subject to a row size of 65,535 bytes, which is shared among all columns.) See Section 9.4, “String Types”.
Да. Похоже на то:)
В любом случае, размерность измеряется в байтах. Так что должна зависеть от кодировки.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования