Автор Тема: my.cnf кодировку latin1 поменять на utf8 [Решено]  (Прочитано 4853 раз)

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 916
    • Домашняя страница
    • Email
Re: my.cnf кодировку latin1 поменять на utf8
« Ответ #15 : 30.09.2016 10:47:27 »
Попробовал setlocale(LC_ALL, 'ru_RU.UTF-8');
даже if(setlocale(LC_ALL, 'ru_RU.UTF-8')) echo "setlocale OK<br>\r\n"; else echo "setlocale BAD<br>\r\n";
пишет setlocale OK, но в консоли так же выводит крякозябры.
https://www.toptal.com/php/a-utf-8-primer-for-php-and-mysql

Цитировать
Set UTF-8 as the default character set for all MySQL connections

Specify UTF-8 as the default character set to use when exchanging data with the MySQL database using mysql_set_charset:

  $link = mysql_connect('localhost', 'user', 'password');
  mysql_set_charset('utf8', $link);
Note that, as of PHP 5.5.0, mysql_set_charset is deprecated, and mysqli::set_charset should be used instead:

  $mysqli = new mysqli("localhost", "my_user", "my_password", "test");
   
  /* check connection */
  if (mysqli_connect_errno()) {
      printf("Connect failed: %s\n", mysqli_connect_error());
      exit();
  }
   
  /* change character set to utf8 */
  if (!$mysqli->set_charset("utf8")) {
      printf("Error loading character set utf8: %s\n", $mysqli->error);
  } else {
      printf("Current character set: %s\n", $mysqli->character_set_name());
  }
   
  $mysqli->close();
Андрей Черепанов (cas@)

Оффлайн userm

  • Давно тут
  • **
  • Сообщений: 68
Re: my.cnf кодировку latin1 поменять на utf8
« Ответ #16 : 30.09.2016 12:59:05 »
$server_db = mysqli_connect("localhost", "root", "", "tdb");
mysqli_set_charset($server_db, 'utf8');
Работает!  :-)

Оффлайн userm

  • Давно тут
  • **
  • Сообщений: 68
Работает замечательно. А нельзя ли где-нибудь в файле прописать этот самый charset? Что бы не писать при каждом соединении.
Цитировать
https://www.toptal.com/php/a-utf-8-primer-for-php-and-mysql
Очень интересно. Жаль на зарубежном, но в принципе все понятно.

Вот Франциско правит файл my.ini, какой файл надо редактировать мне, если /etc/my.cnf содержит !includedir /etc/my.cnf.d, а там их три штуки
[root@alt my.cnf.d]# ls /etc/my.cnf.d/
client.cnf  mysql-clients.cnf  server.cnf
[root@alt my.cnf.d]#
« Последнее редактирование: 01.10.2016 08:13:40 от userm »