登录
首页
专栏
问答
沙龙
快讯
团队主页
开发者手册
智能钛AI
在线学习中心
TVP
返回腾讯云官网
彻底解决MySQL中文乱码
mysql是我们项目中非常常用的数据型数据库。但是因为我们需要在数据库保存中文字符,所以经常遇到数据库乱码情况。下面就来介绍一下如何彻底解决数据库中文乱码情况。
1、中文乱码
1.1、中文乱码
无法插入中文字符:
1.2、查看表字符编码
我们可以看到表的默认字符集是latin1.
所以我们在创建表的时候就需要指定表的字符集:
这样在Linux里面可以访问并且可以插入与访问这个表了。
1.3、数据库与 *** 作系统编码
虽然在服务器端可以显示中文正常,但是在客户端可能会显示乱码。因为我们的服务器是UTF8。
而且数据库的编码也存在问题。
这里我们可以看character_sert_database与character_set_server的字符集都是latin1.那么在mysql数据库中,server,database,table的字符集都默认是latin1.下面我们就来看看如何解决mysql乱码情况。
2、mysql设置变量的范围
2.1、session范围
查看数据库编码:
修改字符编码:
我们可以看到字符集已经修改成都是utf8了。但是这里有一个问题,那就是我们重新打开一个命令窗口然后查看数据编码就会出现下面的画面:
GBK:中国国家标准字符集,是GB2312扩展ZHS16GBK:是oracle数据库中支持GBK的字符集命名方式。
其格式为<语言><bit位><国家字符集>
一、序列号保存在哪
不要被ProductCode迷惑,就算只安装了SQL Server客户端,注册表里也会有这个键值,并不是序列号,DigitalProductID才是,但经过了Base24编码,需要解码才行。
可以看到,对于不同版本,注册表的路径不一样,但是键是一致的。
Express版是免费的,没有序列号,从而注册表也没DigitalProductID这个键。
二、如何解码序列号
利用Powershell 解码
以下powershell函数用于解码/找回SQL Server序列号,在SQL Server 2008, 2008 R2实例上测试通过:
SQL Server 2012序列号里字符的格式发生了变化, data.uValue)[0..16] 不同于SQL Server 2008的 data.uValue)[52..66],同时别忘了改下注册表路径$regPath = "SOFTWARE\Microsoft\Microsoft SQL Server\110\Tools\Setup",修改后如下,在SQL Server 2012实例上测试通过:
调用powershell函数并输出序列号
打开powershell,把上面的函数贴进去,回车,输入Get-SQLServerKey 并回车;
或者把上面的函数存为.ps1文件直接引用:
输出结果如下:
根据powershell 脚本翻译成的Python base24 解码函数:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)