Вопросительные знаки MySQL db вместо ивритских символов ..? - PullRequest
7 голосов
/ 13 марта 2011

Я пытаюсь создать корзину покупок, используя PHP и MySQL. моя база данных в MySQL - utf8, а моя таблица в базе данных - utf8,

Как я могу использовать ивритские символы?

Ответы [ 9 ]

19 голосов
/ 14 марта 2011

Я смог решить эту проблему, выполнив следующие действия:

  1. ДБ должно быть utf8_general_ci
  2. сопоставление таблицы с ивритом должно быть utf8_general_ci
  3. в вашем php-соединении введите header('Content-Type: text/html; charset=utf-8');
  4. в теге xhtml head положить <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  5. после выбора БД в скрипте подключения поставить mysql_query("SET NAMES 'utf8'");
6 голосов
/ 01 июня 2011

После большой работы я нашел решение, которое всегда работает ..: без SET_NAMES.

В файле conn.inc.php после того, как вы выбрали базу данных и подключились к ней, сделайте следующее:

if(!mysqli_set_charset($conn, 'utf8')) {
    echo 'the connection is not in utf8';
    exit();
}

... и в HTML всегда используйте кодировку utf-8;

Это решило это для меня.Не нужно использовать set_names(), что нормально, но это чертовски раздражает меня.

5 голосов
/ 31 мая 2011

Вы можете использовать PDO в своем коде так:

 $db = new PDO($config['DSN'], $config['dbUserName'], $config['dbPassword']);
 $db->exec("SET NAMES 'utf8'");

Убедитесь, что вы поставили одинарные кавычки вокруг utf8.

3 голосов
/ 13 марта 2011

Если это проблема с кодировкой (и звучит так, как она есть), этот запрос поможет:

SET NAMES utf8

Выполнить этот запрос (например, mysql_query("SET NAMES utf8")) сразу после подключения и перед перемещением любых данных..

Подробнее

2 голосов
/ 27 апреля 2016

$ conn-> set_charset ( "utf8"); Используйте это для вашего dbconnect

1 голос
/ 19 июня 2012

Чтобы хранить не-ASCII символы в столбце базы данных, вам нужно определить этот столбец с определенным набором символов.Вы можете указать набор символов на 3 уровнях: база данных, таблица и столбец.Например:

CREATE DATABASE db_name CHARACTER SET utf8
CREATE TABLE tbl_name (...) CHARACTER SET utf8
CREATE TABLE tbl_name (col_name CHAR(80) CHARACTER SET utf8, ...)

http://www.herongyang.com/PHP/Non-ASCII-MySQL-Store-Non-ASCII-Character-in-Database.html

1 голос
/ 13 марта 2011

Где отображаются знаки вопроса?Это может быть проблема кодирования где-то, кроме базы данных.

0 голосов
/ 24 марта 2018

В моем случае я создал БД из дампа, и эта команда решает ее:

ALTER DATABASE <database_name> CHARACTER SET utf8 COLLATE utf8_unicode_ci;
0 голосов
/ 16 января 2015

mysql_query('SET NAMES utf8') ..... Поместите это в Php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...