当我从服务器导入sql文件时,我会收到奇怪的字符。我想相信它的编码。我正在写服务器bd和本地bd的值:
SERVER:
collation_connection: utf8mb4_general_ci
collation_database: utf8_spanish_ci
collation_server: utf8_general_ci
character_set_client: utf8mb4
character_set_connection: utf8mb4
character_set_database: utf8
character_set_filesystem: binary
character_set_results: utf8mb4
character_set_server: utf8
character_set_system: utf8
character_sets_dir: C:\Program Files\MySQL\MySQL Server 5.7\share\charsets\
LOCAL
collation_connection: utf8mb4_general_ci
collation_database: latin1_swedish_ci
collation_server: latin1_swedish_ci
character_set_client: utf8mb4
character_set_connection: utf8mb4
character_set_database: latin1
character_set_filesystem: binary
character_set_results: utf8mb4
character_set_server: latin1
character_set_system: utf8
character_sets_dir: C:\xampp\mysql\share\charsets\
文件SQL导入包含以下脚本:
CREATE DATABASE IF NOT EXISTS `prueba` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_spanish_ci */;
USE `prueba`;
CREATE TABLE IF NOT EXISTS `pruebaTable` (
`co_pruebaTable` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(100) COLLATE utf8_spanish_ci NOT NULL
PRIMARY KEY (`co_pruebaTable`)
) ENGINE=InnoDB AUTO_INCREMENT=418630 DEFAULT CHARSET=utf8
COLLATE=utf8_spanish_ci;
当我在本地导入数据库时,“pruebaTable”中的“name”列包含稀有字符,但在服务器数据库中我正确地看到了这些数据
我尝试使用此查询更改此变量,但它不起作用:
set collation_database=utf8_spanish_ci;
可以解决什么问题?当我导入这个文件sql时,我需要正确看到这些数据。我用notepad ++打开这个文件,我可以正确地看到数据。编码.sql是:UTF-8,所以问题应该是编码到本地数据库,我认为
由于
答案 0 :(得分:0)
尝试更改您的数据库:
<div class="col-lg-2">
<ul class="list-unstyled trash">
<li>
<a href="/responses/{{$response->id}}">
<span onclick="alertDialog()" class="glyphicon glyphicon-trash"></span></a></li>
<li><button type="button" class="btn btn-danger btn-sm" data-toggle="modal" data-target="#{{$response->id}}">Edit</button></li>
</ul>
</div>
答案 1 :(得分:0)
列定义会覆盖表定义,该定义将覆盖数据库定义。列定义不是问题。
你是如何做“导入”的?如果它与LOAD DATA
一起使用,请使用其中为加载建立CHARACTER SET
的子句。
连接时是否建立了字符集?你使用SET NAMES utf8;
吗?还有别的吗?
请参阅Trouble with UTF-8 characters; what I see is not what I stored
中的“Mojibake”让我们从另一边调试一下......你得到了什么“奇怪的角色”? SELECT HEX(name) ...
对于奇怪的文本有什么结果?
F1 C3B1
当使用latin1 ñ
C3B1 F1
C383C2B1 , hex
¡±进行“双重编码”编码时,when correctly encoded in utf8 (or utf8mb4), or hex
为十六进制when it shows as
。