目前我们在PHP中使用以下命令在我们的应用程序中将字符集设置为UTF-8.
由于这有点开销,我们想将其设置为MySQL中的默认设置.我们可以在/etc/my.cnf或其他地方这样做吗?
SET NAMES 'utf8'
SET CHARACTER SET utf8
Run Code Online (Sandbox Code Playgroud)
我在/etc/my.cnf中找了一个默认的字符集,但是没有关于字符集的内容.
此时,我执行以下操作将MySQL字符集和校对变量设置为UTF-8:
skip-character-set-client-handshake
character_set_client=utf8
character_set_server=utf8
Run Code Online (Sandbox Code Playgroud)
这是处理这个问题的正确方法吗?
我正在尝试将我的新架构转发到我的数据库服务器上,但我无法弄清楚为什么我收到此错误.我试图在这里搜索答案,但我发现的所有内容都说要么将数据库引擎设置为Innodb,要么确保我尝试用作外键的密钥是他们自己的表中的主键.如果我没弄错的话,我已经完成了这两件事.你们可以提供的任何其他帮助?
Executing SQL script in server
ERROR: Error 1215: Cannot add foreign key constraint
-- -----------------------------------------------------
-- Table `Alternative_Pathways`.`Clients_has_Staff`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Alternative_Pathways`.`Clients_has_Staff` (
`Clients_Case_Number` INT NOT NULL ,
`Staff_Emp_ID` INT NOT NULL ,
PRIMARY KEY (`Clients_Case_Number`, `Staff_Emp_ID`) ,
INDEX `fk_Clients_has_Staff_Staff1_idx` (`Staff_Emp_ID` ASC) ,
INDEX `fk_Clients_has_Staff_Clients_idx` (`Clients_Case_Number` ASC) ,
CONSTRAINT `fk_Clients_has_Staff_Clients`
FOREIGN KEY (`Clients_Case_Number` )
REFERENCES `Alternative_Pathways`.`Clients` (`Case_Number` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Clients_has_Staff_Staff1`
FOREIGN KEY (`Staff_Emp_ID` )
REFERENCES `Alternative_Pathways`.`Staff` (`Emp_ID` …Run Code Online (Sandbox Code Playgroud) 这是我的连接设置方式:
Connection conn = DriverManager.getConnection(url + dbName + "?useUnicode=true&characterEncoding=utf-8", userName, password);
当tyring为表添加一行时,我收到以下错误:
Incorrect string value: '\xF0\x90\x8D\x83\xF0\x90...' for column 'content' at row 1
我正在插入数千条记录,当文本包含\ xF0时,我总是会收到此错误(即错误的字符串值始终以\ xF0开头).
该列的排序规则为utf8_general_ci.
可能是什么问题呢?
尝试通过MySQL中的存储过程进行选择时,我得到以下错误.
操作'='的非法混合排序(latin1_general_cs,IMPLICIT)和(latin1_general_ci,IMPLICIT)
关于这里可能出现什么问题的任何想法?
表的排序规则latin1_general_ci与where子句中的列的排序规则相同latin1_general_cs.
我在我的本地WAMP服务器上有一个WordPress网站.但是当我将其数据库上传到实时服务器时,我收到错误
#1273 – Unknown collation: ‘utf8mb4_unicode_520_ci’
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激!
其中一个答复的一个问题,我问昨天建议我要确保我的数据库能正确处理UTF-8字符.我怎么能用MySQL做到这一点?
我试图使用UTF-8并遇到麻烦.
我尝试了很多东西; 这是我得到的结果:
????而不是亚洲人物.即使是欧洲文本,我也得到Se?or了Señor.Señor或新浪新闻为????.Sefor Señor.我究竟做错了什么?我该如何修复代码?我可以恢复数据,如果是,如何恢复?
我有一个包含瑞典语/挪威语字符串的数据库表.
当我查询一些数据时,我得到如下输出:
set names latin1;+-----------------------------------+
| name |
+-----------------------------------+
| Kid Interi##### |
| Bwg Homes |
| If Skadef####kring |
| Jangaard Export |
| Nordisk Film |
+-----------------------------------+
Run Code Online (Sandbox Code Playgroud)
现在如果我set names utf8;为了看到具有正确编码的字符,则MySQL命令行的表格输出的格式化会中断.
set names utf8;+-----------------------------------+
| name |
+-----------------------------------+
| Kid Interiør |
| Bwg Homes |
| If Skadeförsäkring |
| Jangaard Export |
| Nordisk Film |
+-----------------------------------+
Run Code Online (Sandbox Code Playgroud)
这不是一个大问题,但它使输出更难阅读.有人知道如何保持表格格式完整吗?
我有一个在生产模式下运行的rails应用程序,但是当用户试图保存记录时,突然出现了这个错误.
Mysql2::Error: Incorrect string value
Run Code Online (Sandbox Code Playgroud)
更多细节(来自生产日志):
Parameters: {"utf8"=>"â<9c><93>" ...
Mysql2::Error: Incorrect string value: '\xC5\x99\xC3\xA1k
Mysql2::Error: Incorrect string value: '\xC5\x99\xC3\xA1k
Run Code Online (Sandbox Code Playgroud)
现在我看到了一些需要删除数据库并重新创建数据库的解决方案,但我不能这样做.
现在mysql显示了这个:
mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.04 sec) …Run Code Online (Sandbox Code Playgroud) 我不确定这是什么时候发生的.
我有一个新的drop-shipping会员网站,并从批发商那里收到产品目录的导出副本.我格式化并将其导入Prestashop 1.4.4.
网站的前端包含产品文本中的奇怪字符组合:Ã,Ã,¢,â等.它们出现在常见字符的位置,如: - :等.
这些字符存在于大约40%的数据库表中,而不仅仅是产品特定的表,如ps_product_lang.
另一个网站线程说当数据库连接字符串使用不正确的字符编码类型时会出现同样的问题.
在/config/setting.inc中,没有提到的字符编码字符串,只有MySQL Engine,它设置为InnoDB,与我在PHPMyAdmin中看到的匹配.
我导出了ps_product_lang,用正确的字符替换了这些字符的所有实例,以UTF-8格式保存了CSV文件,并使用PHPMyAdmin重新导入它们,指定UTF-8作为语言.
但是,在PHPMyAdmin中进行新的搜索后,我现在在ps_product_lang中的这些错误字符的实例数量是我开始时的10倍.
如果问题就像在数据库连接字符串中指定正确的语言属性一样简单,我在哪里/如何设置它,以及该怎么做?
我很自然地尝试在此线程中提到的PHPMyAdmin中运行此命令,但问题仍然存在:
SET NAMES utf8
Run Code Online (Sandbox Code Playgroud)
更新:PHPMyAdmin说:
MySQL charset:UTF-8 Unicode(utf8)
这与我在上一个导入文件中使用的字符集相同,导致更多字符损坏.在导入过程中,UTF-8被指定为导入文件的字符集.
UPDATE2
这是一个示例:
人们真正生活在不受限制的地方,在线购买和租借电影,下载软件以及共享和存储文件,这些都是不受欢迎的,••••••â€网络.
UPDATE3
我在PHPMyAdmin中运行了一个SQL命令来显示字符集:
因此,我的数据库可能需要转换(或删除并重新创建)为UTF-8.如果MySQL服务器是latin1,这会造成问题吗?
MySQL能否将服务内容的翻译作为UTF8处理,但将其存储为latin1?我不认为它可以,因为UTF8是latin1的超集.我的网络托管支持在48小时内没有回复.对他们来说可能太难了.