我做了很少的基于PHP / MySQL的Web项目,迟早,我总是有字符集问题。
我住在西班牙,我们在这里有一些特殊的角色:çñáéíóó和ú
有很多变量,charset总是搞砸了:
我想要的是如何设置所有内容的基本指南,以便我不会遇到这些西班牙语字符的问题。
我填充HTML输出的方式有三种:
我直接用HTML写了一些单词,例如
<p>Qué rábanos pasaría mañana</p>
我用parse_ini_file($ file)读取了labels.ini文件;标签文件类似于:
SORTING_ENTITY =Líneadenegocio SORTING_PLURAL =Líneasdenegocio MAIN_ENTITY =Instalación MAIN_PLURAL = Instalaciones
因此,当我查看网站时,有时从MySQL生成的文本会混乱,有时直接HTML会搞砸,有时候一切都会好,但来自.ini文件的内容会搞砸。< / p>
有时,我使用Web表单,以便用户输入保存在MySQL中的数据。用户在Web表单中编写“Pájaro”,并且一些不正确的字符存储在数据库中,如“P} jaros”或类似的东西。
我希望有一些指导原则,以便所有内容都设置为无论我在直接HTML或.ini文件中编写的内容都显示在网站中,并且无论用户在Web表单中写入的内容是否正确存储,以后读取这些数据并用PHP回显时也会以相同的方式显示。
我不想使用像:
这样的东西á
ñ
echo utf8_encode($dat);
答案 0 :(得分:0)
在HTML头元素中始终包含
<meta charset="UTF-8"/>
在PHP中输出UTF-8字符
header("Content-type: 'text/html'; Charset='UTF-8');
另外,请记住将标题放在每个PHP脚本的顶部
对于PHP CRUD(创建,读取,更新,删除),请使用此代码
$conObj = new mysqli("", "", "", "");
$conObj->query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'");
尝试用这个“查询”函数创建一个类(称之为编码器或任何你喜欢的东西),所以无论何时你创建这个类的对象,这个函数都会自动执行,你不必硬编码它。在每个连接实例/对象下写入。