Сохранить японские символы в MySQL - PullRequest
0 голосов
/ 15 декабря 2018

Я использую PHP для исполнения предложения по обновлению MySQL с испанскими, английскими и японскими символами.

Но я не могу сохранить японские символы в базе данных.Как мне действовать?

В базе данных есть сопоставление utf8_general_ci.

$strSQL = "UPDATE table SET value = '" . addslashes($strValue) . "'";
$strSQL = utf8_decode($strSQL);
mysqli_query($cnn, $strSQL);

С помощью addslashes я могу получить апострофы для сохранения в базе данных.

С помощью utf8_decode я могу получить испанские символы для сохранения в базе данных.

1 Ответ

0 голосов
/ 15 декабря 2018

Почему вы обрабатываете utf8_decode() SQL-запрос?

Посмотрите на http://php.net/manual/en/function.utf8-decode.php для получения подробной информации о utf8_decode ()


Вы должны проверить несколько вещей.

Есть ли проблема в вашей базе данных и таблицах или в вашем PHP-скрипте.

База данных:

CREATE DATABASE test DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

Таблица кодировки:

CREATE TABLE test.table
(
    id INT NOT NULL AUTO_INCREMENT,
    text VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
    PRIMARY KEY (`id`)
) ENGINE = MyISAM;

Соединение:

SET NAMES utf8;

Например:

$mysqli = new mysqli("localhost","my_user","my_password","test_db");
$mysqli->set_charset("utf8");

ИЛИ

$link = mysqli_connect("localhost","my_user","my_password","test_db");
mysqli_set_charset($link,"utf8");

Настройте кодировку кодировки сервера:

С помощью PHPMyAdmin при входе выберите UTF-8.

PHP-скрипт:

header('Content-Type: text/html;charset=UTF-8');

Apache Config (/etc/httpd/conf/httpd.conf):

AddDefaultCharset UTF-8

Apache .htaccess файл:

AddCharset UTF-8 .htm
AddCharset UTF-8 .html
AddCharset UTF-8 .php

PHP Config (/etc/php.ini):

default_charset = "utf-8"

MySQL Config (/etc/my.cnf):

[client]
default-character-set=utf8

[mysqld]
default-collation=utf8_unicode_ci
character-set-server=utf8
default-character-set=utf8
init-connect='SET NAMES utf8'
character-set-client = utf8

Пользовательские значения:

Например: $_GET, $_POST

Вы можете использовать mb_convert_encoding() для преобразования ваших строк в UTF-8 .


Полезные ссылки:

...