Кирилица в MySQL (Проблем)

Готови за използване кодове
Post Reply
mastatekilla22
Нов
Нов
Posts: 1
Joined: Mon Aug 18, 2014 1:16 pm
Contact:

Кирилица в MySQL (Проблем)

Post by mastatekilla22 » Mon Aug 18, 2014 1:20 pm

Здравейте. Прегледах поне 20 теми във форума относно този проблем и все пак не мога да настроя таблиците в базата данни да изписват текста на кирилица.

Използвам система за добавяне на файлове. Файловете се добавят през сайта. В mysql-а имената на файловете излизат като "?????"

това е сяла

Code: Select all

CREATE TABLE `plugins` (
`id` int(11) NOT NULL auto_increment,
`url` varchar(255) NOT NULL,
`plugdescription` varchar(2550) NOT NULL,
`plugname` varchar(255) NOT NULL,
`plugauthor` varchar(50) NOT NULL,
`addby` varchar(50) NOT NULL,
`photourl` varchar(100) NOT NULL,
`plugcat` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; 
php страниците ми са настроени на кодировка ANSI (пробвах и с други, но не става) във всяка страница е добавено

Code: Select all

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

User avatar
plamen_003
Турист
Турист
Posts: 494
Joined: Mon Nov 26, 2007 8:16 pm
Answers: 13
Location: София

Post by plamen_003 » Wed Aug 20, 2014 6:48 pm

Смени charset-а на UTF-8:
[html]
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
[/html]

И базата данни я направи да бъде utf-8_general_ci.

Nazi_93
Потребител
Потребител
Posts: 907
Joined: Thu Feb 24, 2011 7:54 pm
Answers: 50

Post by Nazi_93 » Thu Aug 21, 2014 5:22 am

Или в PHP файла пишеш:

[php]$colation="ALTER DATABASE $database_name CHARACTER SET utf8 COLLATE utf8_general_ci";
$colation_query=mysql_query($colation) or die (mysql_error());[/php]

, ако не знаеш къде да ровиш в PHPMyadmin...

User avatar
Zion
Гуру
Гуру
Posts: 2489
Joined: Sun Mar 23, 2008 1:37 pm
Answers: 114
Location: гр. Троян
Contact:

Post by Zion » Thu Jan 08, 2015 11:49 am

под връзката с базата данни т.е.: mysql_coonect... сложи
mysql_query("SET NAMES CP1251"); ако не пробвай с mysql_query("SET NAMES UTF-8");

User avatar
anonimen
Web-tourist
Web-tourist
Posts: 1600
Joined: Mon Jun 11, 2012 6:07 pm
Answers: 165
Location: Parse error: unexpected "}" in /home/index.php on line 26

Post by anonimen » Sat Jan 10, 2015 1:39 pm

Трябва всяко едно от тези неща да е в utf-8:

- Колоните в бд-то. Тази настройка се прави като отидеш в phpmyadmin при таблицата и цъкнеш "Structure". Избираш полето, което искаш да съдържа кирилица и цъкаш на "Change". Намираш "Collation" и от селекта избираш utf8_general_ci

- Ако искаш да промениш цялата таблица в utf8: отваряш си таблицата в phpmyadmin, избираш "Operations" (намира се най-вдясно). В Table options
намираш Collation и пак го правиш на utf8_general_ci

- конекцията: ако използваш PDO, трябва да имаш 'mysql:host=localhost;dbname=db;charset=utf8'.

- след всяка конекция трябва да изпълниш тази заявка: SET NAMES = utf8

- в php-то трябва да имаш [php]header('Content-type: text/html; charset="utf-8"') ;[/php]

- и накрая в html: [html]<meta charset="utf-8" />[/html]

Погледни това: http://stackoverflow.com/a/14227400/3132718
И нещо на български: http://help.hostbulgaria.com/mysql-charset-encoding

Post Reply