我完全被我读到的关于字符集的东西搞糊涂了.我正在开发一个接口来存储在mysql数据库中以html格式化的法语文本.我所理解的是,正确显示所有法国特殊字符的安全方法是将它们存储为utf8.所以我创建了一个mysql数据库,为...

我完全被我读到的关于字符集的东西搞糊涂了.我正在开发一个接口来存储在mysql数据库中以html格式化的法语文本.
我所理解的是,正确显示所有法国特殊字符的安全方法是将它们存储为utf8.所以我创建了一个mysql数据库,为数据库和每个表指定了utf8.
我可以通过phpmyadmin看到字符的存储方式完全符合预期.但是通过php输出这些字符会给我带来不稳定的结果:重音字符被无意义的字符所取代.这是为什么 ?
我必须utf8_encode或utf8_decode他们?注意:html页面字符编码设置为utf8.
更一般地说,存储这些数据的安全方法是什么?我应该在保存时结合htmlentities,addslashes和utf8_encode,并在输出时使用stripslashes,html_entity_decode和utf8_decode吗?
解决方法:
MySQL动态执行字符集转换到称为connection charset的东西.您可以使用sql语句指定此字符集
SET NAMES utf8
或使用特定的API函数,如mysql_set_charset():
mysql_set_charset("utf8", $conn);
如果正确完成,则无需使用utf8_encode()和utf8_decode()等函数.
您还必须确保浏览器使用相同的编码.这通常使用简单的标头完成:
header('Content-type: text/html;charset=utf-8');
(注意,charset在浏览器中称为utf-8,在MySQL中称为utf8.)
在大多数情况下,连接字符集和网络字符集是您需要跟踪的唯一内容,因此如果它仍然不起作用,那么可能还有其他错误.尝试一下,通常需要一段时间才能完全理解.
本文标题为:php mysql字符集:存储国际内容的html


基础教程推荐
- clientX,pageX,offsetX,x,layerX,screenX,offsetLeft区别分析 2024-01-08
- JSONObject与JSONArray使用方法解析 2024-02-07
- 创建Vue3.0需要安装哪些脚手架 2025-01-16
- html5视频如何嵌入到网页(视频代码) 2025-01-22
- js判断一个对象是否在一个对象数组中(场景分析) 2022-10-21
- Loaders.css免费开源加载动画框架介绍 2025-01-23
- Bootstrap学习笔记之css组件(3) 2024-01-22
- Django操作cookie的实现 2024-04-15
- 纯css实现漂亮又健壮的tooltip的方法 2024-01-23
- webpack学习笔记一:安装webpack、webpack-dev-server、内存加载js和html文件、loader处理非js文件 2023-10-29