我正在尝试将CSV文件导入mysql表。整个数据库都有utf8_unicode_ci编码。CSV文件还具有UTF8编码。但是,当我尝试运行以下代码时,它只显示表中的空白字符,而不是特殊字符:
$query = "LOAD DATA LOCAL INFILE 'mycsvfile.csv' INTO TABLE location_temp
CHARACTER SET UTF8
FIELDS TERMINATED BY ';'
ENCLOSED BY '\"'
为了设置utf8编码,我已经完成了在以前版本的MySQL (以及MySQL 5.5的新版本)上工作的所有操作。现在我有了以下输出
SHOW GLOBAL VARIABLES LIKE '%char%';
这正是我想要的:
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| chara
我需要在一个字段的特定编码上实现一个排序的SELECT,没有 CONVERT。
也就是说,通常我会按
SELECT * FROM table ORDER BY CONVERT(field USING gbk) COLLATE gbk_chinese_ci
然而,出于某种原因,CONVERT是不允许的。因此,我试图通过
ALTER TABLE table MODIFY field VARCHAR(xx) CHARACTER SET gbk COLLATE gbk_chinese_ci;
SELECT * FROM table ORDER BY field
它起作用了。那很好。然而,我担心编码问
我有一个csv文件,它包含一些行,我想使用MySQL MySQL命令将这些行插入到一个MySQL表中。当我使用该命令,插入准备就绪时,插入的特殊字符都会乱七八糟。该文件正确地存储字符(我认为是这样的,因为当我用像EditPlus这样的编辑器打开文件时,特殊字符都损坏了,但是当用另一个编辑器打开时,比如EmEditor,特殊字符就会正确地出现),将容纳带有特殊字符的文本的列是着色utf8_general_ci,它们要么是varchar列,要么是text列。该表是一个InnoDB表,排序规则设置为utf8_general_ci。我使用以下参数从LOAD DATA INFILE命令行运行MariaD
我有一组红宝石脚本可以访问我的MySQL数据库。我需要修改这个数据库的字符集,特别是将表从Latin1更改为UTF8。我真的需要修改我的脚本吗?我已经看过了,我看到我可以设置一个连接的字符集,这是强制性的吗?
我犹豫不决地认为,我不需要做任何调整,这就是今天数据库的设置。查看字符集是如何设置的:
mysql> SHOW VARIABLES LIKE "%char%"; +--------------------------+-------------------------------------------+ | Variable_name | V
名称通过utf8_unicode_ci存储在mysql中。我使用一个简单的sql请求从db中获取名称,并在一个表中回显它们。
与Julián类似,Julián也有回声。我可以通过一些命令运行$name变量来解乱它,或者修改我的sql请求吗?它现在是一个简单的SELECT name FROM table。
我有一个utf-8 mysql DB。
在我的jsp文件中,我使用:
<%@ page pageEncoding="UTF-8"%>
...
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
我的浏览器编码是UTF-8。
在表单中,我有一个输入文本。
当我提交表单时,如果输入文本的值包含,例如:
à è é à ò ù €
它在db中插入一个“错误的”字符串。
提交后,如果我打印的输入文本内容已经包含“奇怪”的字符。
当我使用u
我想让所有的注册符号上标,用一个<sup>标签包装。所以,我可以在SQL中做到这一点,没有问题:
SELECT s.id,
Replace(s.name,'®','<sup>®</sup>') AS name
FROM staff s
WHERE name LIKE '%®%'
结果:
id | name
1 | Name1 CFP<sup>®</sup>, CDFA
2 | Jeffrey test CFP<sup>®&l
我有一个很大的mysql表,我认为它可能使用了错误的字符集。如果是这样,我将需要使用以下命令更改它
ALTER TABLE mytable CONVERT TO CHARACTER SET utf8
但由于这是一个非常大的表,除非迫不得已,否则我不会运行此命令。所以我的问题是,我如何向mysql询问特定表上的字符集是什么?
我可以在mysql中调用status来查看数据库的字符集,但这并不意味着所有的表都有相同的字符集,对吧?
我试图做一个简单的插入与西班牙字符,但没有成功。这是我的简单MySQL表结构:
CREATE TABLE student (
id INTEGER NOT NULL AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
lastname VARCHAR(100) NOT NULL,
CONSTRAINT PK_STUDENT PRIMARY KEY (id)
) CHARACTER SET utf8 COLLATE utf8_general_ci;
name和lastname字段将来自西班牙人,他们的名字和姓氏如下:
丹尼尔·韦拉斯克兹
我有一个用latin5字符集编码的数据表,表中的所有列也都是latin5。当我在mysql控制台输入"SET NAMES 'latin5'“并查询表格结果时,结果是ok的。当我尝试删除或插入/更新所有新数据时,它们的编码都是完美的。但是当我尝试向数据库插入Iso-8859数据(也用mb_detect_encoding验证这一点),并且我试图插入没有"SET name“的数据时,它不会以正确的编码插入/更新/选择,或者当我使用"SET NAMES ' latin5‘”时,它不会以正确的方式插入/更新,但select are ok latin5数据正