|
|
|
| Здравствуйте.
помогите запутался.
1 создаю таблицу с полем
spitch text character set utf8,
|
2 сама таблица
) engine=MyISAM CHARACTER SET utf8;
|
3 заполняется из файла
load data infile 'Z:/usr/work/311.csv' replace into table art lines terminated by '\r\n' ignore 1 lines;
|
файл в utf8
4 страница
5 при подключении к базе
mysql_query("set names utf8");
|
данные из поля spitch выводятся как кракозябры.
меняю
mysql_query("set names cp1251");
|
все отображается нормально.
??:/ ничего непонимаю...
объясните пожалуйста | |
|
|
|
|
автор: .heed (28.01.2013 в 00:28) |
|
|
для: btr
(27.01.2013 в 23:54)
| | похоже на то что <meta charset = "utf-8"> не приводит к желаемому результату.
можно попробовать AddDefaultCharset в htaccess или header('Content-type: text/html; charset=utf-8') в скрипте
или в браузере Вид->Кодировка->utf8 | |
|
|
|
|
|
|
|
для: .heed
(28.01.2013 в 00:28)
| | работает. страница в утф8, все русские слова в шаблоне штмл показываются правильно | |
|
|
|
|
|
|
|
для: btr
(27.01.2013 в 23:54)
| | Содержимое my.ini/my.cnf какое? | |
|
|
|
|
|
|
|
для: cheops
(28.01.2013 в 07:23)
| |
[mysql]
character-sets-dir="Z:/usr/local/mysql/share/charsets/"
default-character-set=cp1251
|
это имеете ввиду?
поправочка: это для клиента, но в
[mysqld]
default-character-set=cp1251
|
та же настройка | |
|
|
|
|
|
|
|
для: cheops
(28.01.2013 в 07:23)
| | как интересно... а почему у меня по адресу
Z:/usr/local/mysql/share/charsets/
|
отсутствует файл вроде utf8.xml ??? | |
|
|
|
|
|
|
|
для: btr
(27.01.2013 в 23:54)
| | поможите кто-нибудь.
где я накосячил?? | |
|
|
|
|
|
|
|
для: btr
(28.01.2013 в 13:27)
| | В файле C:\WebServers\usr\local\apache\conf\httpd.conf
закомментируйте
#AddDefaultCharset windows-1251 | |
|
|
|
|
|
|
|
для: Valick
(28.01.2013 в 13:31)
| | нет такой строки в конфиге | |
|
|
|
|
|
|
|
для: btr
(27.01.2013 в 23:54)
| | косвенным путем пришел к мнению, что все же не в той кодировке текст в базу затолкал. функция substr($spitch,0,13) вырезает не 14, а 7 читаемых символов.
не подскажете, как я это умудрился сделать? :О | |
|
|
|
|
|
|
|
для: btr
(28.01.2013 в 14:42)
| | Если правильно понял
>The character set indicated by the character_set_database system variable is used to interpret the information in the file. SET NAMES and the setting of character_set_client do not affect interpretation of input. If the contents of the input file use a character set that differs from the default, it is usually preferable to specify the character set of the file by using the CHARACTER SET clause, which is available as of MySQL 5.1.17.
то только character_set_database влияет на то в какой кодировке загрузит LOAD DATA INFILE
и предложено использовать CHARACTER SET в самом запросе
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
[REPLACE | IGNORE]
INTO TABLE tbl_name
[CHARACTER SET charset_name]
[{FIELDS | COLUMNS}
[TERMINATED BY 'string']
[[OPTIONALLY] ENCLOSED BY 'char']
[ESCAPED BY 'char']
]
[LINES
[STARTING BY 'string']
[TERMINATED BY 'string']
]
[IGNORE number LINES]
[(col_name_or_user_var,...)]
[SET col_name = expr,...]
|
Но почему-то не слова о кодировке таблицы по умолчанию | |
|
|
|
|
|
|
|
для: heed
(28.01.2013 в 16:15)
| | Спасибо, помогло.
однако появился вопрос : в пхп substr вырезает из содержимого этого поля вдвое меньше символов, чем ему говоришь (см мой пост выше) а если нечетное количество - то в конце кракозяблю ставит.
почему так? или не то победили? | |
|
|
|
|
автор: .heed (28.01.2013 в 16:59) |
|
|
для: btr
(28.01.2013 в 16:41)
| | substr в php работает с байтами а не с символами
mb_substr() наверное как вариант, mbstring вроде всегда должен присутствовать | |
|
|
|
|