网页表单中的汉字存储到数据库, 再从数据库中提取并显示到网页时碰到的乱码问题。
2013-09-20 15:53
489 查看
今天在写python CGI脚本测试将网页表单中填写的信息提交后存储到mysql中时, 碰到了汉字显示乱码的问题。 因为之前在学习mysql的时候用insert向数据库中插入汉字时出现乱码, 解决此问题是修改数据库的字符编码。。所以在此次测试之前, 就已经建表时设置了默认字符为utf-8. 可是, 在将表单中的汉字存储到数据库时, 数据库中每条记录的汉字依然是显示乱码。 因为感觉一定不是数据库的问题了, 所有就各种查阅关于网页提交表单内容时读汉字时候进行编码修改。 我将网页的编码设置为utf-8, 在查阅资料的过程中, 了解到, 网页表单中的内容会按照所给编码格式传输到服务器中的python脚本, 然而utf-8格式的汉字在python中是一十六进形式存储的, 比如: 你好吗, 如果在python交互模式下查看
每个汉字用三个十六进制字节表示。。如果要将其正确的显示出汉字, 就要使用print, 因为print在显示汉字时, 会把内存中存储的内容转换为正确的显示格式。
所以在python脚本中将从表单中获取的输入的汉字存储到数据库时, 其实是将这十六进制数存入了数据库。。。数据库中依然显示乱码, 因为之前修改数据库的编码时, 曾把character_set_client、character_set_database、character_set_server等变量的内容由latin1改为了utf-8, 在无意的尝试中, 又将这些变量的值改回了latin1, 结果汉字不再显示为乱码了。 无意中尝试居然解决了问题。。 之后我又尝试了几次, 发现, 只要将数据库中表的字符格式设置为可以显示汉字的utf-8格式, 而对于数据库中的其他字符变量不做修改, 数据的显示能正常显示。。
而之后在将数据从数据库中提取出来显示在网页的时候, 因为是直接将row = fetchone()中的数据print row, 打印出来的, 网页中汉字显示的是十六进值形式, 脑子有些转不过来弯了, 以后又是编码问题, 搞了老一会也没有头绪,
其实只要在脚本中将查询的每一个字段内容用print打印出来就行了, print row[0], print row[1]...。 这点问题, 居然让我搞了一下午, 唉。。。。。
每个汉字用三个十六进制字节表示。。如果要将其正确的显示出汉字, 就要使用print, 因为print在显示汉字时, 会把内存中存储的内容转换为正确的显示格式。
所以在python脚本中将从表单中获取的输入的汉字存储到数据库时, 其实是将这十六进制数存入了数据库。。。数据库中依然显示乱码, 因为之前修改数据库的编码时, 曾把character_set_client、character_set_database、character_set_server等变量的内容由latin1改为了utf-8, 在无意的尝试中, 又将这些变量的值改回了latin1, 结果汉字不再显示为乱码了。 无意中尝试居然解决了问题。。 之后我又尝试了几次, 发现, 只要将数据库中表的字符格式设置为可以显示汉字的utf-8格式, 而对于数据库中的其他字符变量不做修改, 数据的显示能正常显示。。
而之后在将数据从数据库中提取出来显示在网页的时候, 因为是直接将row = fetchone()中的数据print row, 打印出来的, 网页中汉字显示的是十六进值形式, 脑子有些转不过来弯了, 以后又是编码问题, 搞了老一会也没有头绪,
其实只要在脚本中将查询的每一个字段内容用print打印出来就行了, print row[0], print row[1]...。 这点问题, 居然让我搞了一下午, 唉。。。。。
相关文章推荐
- 关于往数据库插入汉字时,显示乱码的问题
- 微信浏览器提交表单内汉字,服务器接收显示乱码问题的解决
- Struts2表单提交的中文字符数据用hibernate存储在数据库中是乱码的问题。
- Java处理数据库Mysql汉字显示乱码问题
- JSP中乱码问题解决(一、JSP页面显示乱码,二、表单提交中文时出现乱码,三、数据库连接出现乱码,四、数据库的显示乱码 )
- struts2表单提交后数据库存储中文乱码问题
- 关于网页中显示php查询数据库结果乱码问题
- Python连接Mysql&&解决数据库汉字显示乱码问题
- 网页书写汉字通过ajax传入数据库再返回,刷新出现乱码问题
- ObjC解码汉字网页乱码问题
- ucGUI EDIT控件显示汉字尾部出现乱码问题的一个BUG
- 使用struts2提交jsp页面表单时参数中汉字乱码的问题
- 数据库 中文汉字乱码问题解决方案
- 解决pl/sql developer中数据库表中显示中文乱码问题
- JSP页面显示乱码二、表单提交中文时出现乱码三、数据库连
- 向后台数据库提交表单时碰到的问题
- SSH项目笔记:表单提交字符串,MySQL存储乱码问题解决
- geoserver显示shapefile中汉字呈乱码问题的可选解决方案
- 在使用AJAX更新数据库时碰到的中文乱码问题
- PHP网页显示乱码问题总结