问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

在mysql中输入中文的时候是乱码

发布网友 发布时间:2022-04-08 01:49

我来回答

4个回答

热心网友 时间:2022-04-08 03:18

你这个看不清楚,不过mysql中输入中文的时候是乱码,一般都是编码的问题,关于编码的解决办法请参照下面:

一、页面编码

1. 使用 <META http-equiv="content-type" content="text/html; charset=xxx"> 标签设置页面编码

这个标签的作用是声明客户端的浏览器用什么字符集编码显示该页面,xxx可以为GB2312,GBK,UTF-8(和MySQL不同,MySQL是 UTF8)等等。因此,大部分页面可以采用这种方式来告诉浏览器显示这个页面的时候采用什么编码,这样才不会造成编码错误而产生乱码。但是有的时候我们会发现有了这句还是不行,不管xxx是哪一种,浏览器采用的始终都是一种编码,这个情况我后面会谈到。

请注意,<meta>是属于html信息的,仅仅是一个声明,它起作用表明服务器已经把HTML信息传到了浏览器。

2. header("content-type:text/html; charset=xxx");

这个函数header()的作用是把括号里面的信息发到http标头。

如果括号里面的内容为文中所说那样,那作用和<META>标签基本相同,大家对照第一个看发现字符都差不多的。但是不同的是如果有这段函数,浏览器就会永远采用你所要求的xxx编码,绝对不会不听话,因此这个函数是很有用的。为什么会这样呢?那就得说说HTTPS标头和HTML信息的差别了:

https标头是服务器以HTTP协议传送HTML信息到浏览器前所送出的字串。

因为meta标签是属于html信息的,所以header()发送的内容先到达浏览器,通俗点就是header()的优先级高于meta(不知道可不可以这样讲)。加入一个php页面既有header("content-type:text/html; charset=xxx"),又有<META http-equiv="content-type" content="text/html; charset=xxx">,浏览器就只认前者http标头而不认meta了。当然这个函数只能在php页面内使用。

同样也留有一个问题,为什么前者就绝对起作用,而后者有时候就不行呢?这就是接下来要谈的Apache的原因了。

3. AddDefaultCharset

Apache 根目录的 conf 文件夹里,有整个Apache的配置文档httpd.conf。

用文本编辑器打开httpd.conf,第708行(不同版本可能不同)有AddDefaultCharset xxx,xxx为编码名称。这行代码的意思:设置整个服务器内的网页文件https标头里的字符集为你默认的xxx字符集。有这行,就相当于给每个文件都加了一行header("content-type:text/html; charset=xxx")。这下就明白为什么明明meta设置了是utf-8,可浏览器始终采用gb2312的原因。

如果网页里有header("content-type:text/html; charset=xxx"),就把默认的字符集改为你设置的字符集,所以这个函数永远有用。如果把AddDefaultCharset xxx前面加个“#”,注释掉这句,而且页面里不含header("content-type…"),那这个时候就轮到meta标签起作用了。

4. default_charset

在 php.ini 文件中可以定义 php 的默认语言: default_charset = "xxx",xxx为编码名称。这行代码的意思是设置所有 php 的输出页面编码为 xxx。

总结:

以上 4 种编码设置方法的优先级如下:

header("content-type:text/html; charset=xxx")
default_charset xxx
AddDefaultCharset xxx
<META http-equiv="content-type" content="text/html; charset=xxx">
如果你是web程序员,给你的每个页面都加个header("content-type:text/html; charset=xxx"),保证它在任何服务器都能正确显示,可移植性强。

至于那句AddDefaultCharset xxx,要不要注释就仁者见仁了。反正我是注释掉了,不过我写页子也要写header(),便于放到服务器上能正常显示。

二、数据库编码

PHP 程序在查询数据库之前,首先执行 mysql_query(“SET NAMES xxxx”);其中 xxxx 是你网页的编码(charset=xxxx),如果网页中 charset=utf8,则 xxxx=utf8,如果网页中 charset=gb2312,则xxxx=gb2312,几乎所有WEB程序,都有一段连接数据库的公共代码,放在一个文件里,在这文件里,加入mysql_query(“set names”)就可以了。

SET NAMES 显示客户端发送的 SQL 语句中使用什么字符集。因此,SET NAMES 'utf-8'语句告诉服务器“将来从这个客户端传来的信息采用字符集utf-8”。它还为服务器发送回客户端的结果指定了字符集。(例如,如果你使用一个SELECT语句,它表示列值使用了什么字符集。)

三、中文文件名

默认情况下,文件名为中文时不能访问。要使中文文件名能正常访问,需进行如下设置:

在ie中选择 工具 -> internet选项 -> 高级 -> 取消“总是以UTF-8发送URL”。

热心网友 时间:2022-04-08 04:36

1 数据库全部改为gbk编码(如果用utf8的话没法插入中文 还得set names utf8 麻烦)
2 conn = DriverManager.getConnection("jdbc:mysql://localhost/hibernate?user=root&password=你的密码&useUnicode=true&characterEncoding=utf-8");
3 (如果看到懂得话) 就是加上useUnicode=true&characterEncoding=utf-8
这里设置utf-8 完美显示中文

热心网友 时间:2022-04-08 06:11

没有设字符集的编码  最好是utf8  就不会乱码了

热心网友 时间:2022-04-08 08:02

mysql编码问题!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 狗链会勒狗脖子吗? 狗链子怎么带解释图 如何能让成犬拴上狗脖套 这样的狗链怎么带?要详细过程 急……… 小狗在带链子是老是咬东西,真... 给狗带狗链子就真的能控制住狗吗 给狗狗带铁的链子 就是脖子一圈是铁链 对狗狗喉咙有没有伤害 会不会喉咙勒坏 狗子带到脖子上面的东西是什么? 拉布拉多带狗链子应当带在什么位置? 用来遛狗的绳子或铁链,就是用来牵狗狗的和套在狗狗脖子上的分别叫什么?最好给术语,谢谢啦~~~~ 狗带链子的问题 狗脖子上戴的那个圈是干什么用的? 狗链子要时时刻刻都带着吗? 十二生肖里脖子带项链很美丽的是什么动物 狗链子怎么带 photoshop 中调色曲线为什么打不开 山西省长治市有兴业银行吗?在哪里? 教师资格证报名,审核怎么弄 晋城农商银行和阳城农商银行是一个行吗? 教师资格证怎么验证 新车没牌照能买保险吗 无毛青龙白虎才是完美的人 微信好友有哪些共用app 我对象被人说是“白虎” 如何把上的好友同步到另一个 求告知听他们说的什么女人男人青龙白虎朱雀玄武是什么意思呀 一个人的两个好友能不能共享 你原配是青龙,情人是白虎,暗动,什么意思 手机微信怎么共享好友 白虎一定要配青龙吗? 白虎啥样? 可以把手机上的一张照片同时分享给多个微信好友吗? 一个人的两个好友能不能共享 合伙店铺,微信好友怎样可以共享? vivox30能把微信分享给好友,能不能分享给自己? 查客车电话号码多少怎么查 长途客车的电话怎么查询? 成都到巴塘客车电话号码查询咨询帮助电话号码 怎么查到坐长途汽车挨着自己坐的人的电话 齐齐哈尔到克山客车手机号怎么查? 急求 黄色推单车的卡通情侣头像!