UTF 8 编码在 PHP 中无法正常工作
UTF 8 encoding not working properly in PHP
我正在尝试打印来自 MySql 数据库的数据。
我有一个简单的问题,它显示 D�lar
而不是 Dólar
。
虽然我已经包含了
<META http-equiv="Content-Type" Content="text/html; charset=utf-8">
在我的 html 页面中,任何人都可以帮助我解决这个问题
提前致谢
字符集需要在几个不同的地方定义:
MySQL 数据库
数据库中存储的文本可能未编码为 UTF-8。您可以将默认字符集定义为 create database
语句的一部分:
CREATE DATABASE mydb CHARACTER SET utf8;
您还可以使用 create table
.
指定每列字符集
在您的 PHP 代码中
您需要告诉您的客户端代码在与数据库通信时应该使用哪种编码。
如果您使用 PDO,您可以指定字符集 as part of the DSN string:
$dsn = 'mysql:host=localhost;dbname=testdb;charset=utf8';
$dbh = new PDO($dsn, $username, $password);
如果您使用 MySQLi,您可以使用 mysqli_set_charset()
function/method:
$dbh->set_charset('utf8');
或:
mysqli_set_charset($dbh, 'utf8');
或者,MySQL 网站在连接到服务器后建议 issuing a statement:
SET NAMES 'utf8';
在 HTML 输出中
对于 HTML5,您只需在输出的 <head>
元素中添加以下 <meta>
标记:
<meta charset="utf-8">
我已经使用了波纹管功能并且它对我有用
call_user_func_array('mb_convert_encoding',数组(&$str,'HTML-ENTITIES','UTF-8'));
我正在尝试打印来自 MySql 数据库的数据。
我有一个简单的问题,它显示 D�lar
而不是 Dólar
。
虽然我已经包含了
<META http-equiv="Content-Type" Content="text/html; charset=utf-8">
在我的 html 页面中,任何人都可以帮助我解决这个问题
提前致谢
字符集需要在几个不同的地方定义:
MySQL 数据库
数据库中存储的文本可能未编码为 UTF-8。您可以将默认字符集定义为 create database
语句的一部分:
CREATE DATABASE mydb CHARACTER SET utf8;
您还可以使用 create table
.
在您的 PHP 代码中
您需要告诉您的客户端代码在与数据库通信时应该使用哪种编码。
如果您使用 PDO,您可以指定字符集 as part of the DSN string:
$dsn = 'mysql:host=localhost;dbname=testdb;charset=utf8';
$dbh = new PDO($dsn, $username, $password);
如果您使用 MySQLi,您可以使用 mysqli_set_charset()
function/method:
$dbh->set_charset('utf8');
或:
mysqli_set_charset($dbh, 'utf8');
或者,MySQL 网站在连接到服务器后建议 issuing a statement:
SET NAMES 'utf8';
在 HTML 输出中
对于 HTML5,您只需在输出的 <head>
元素中添加以下 <meta>
标记:
<meta charset="utf-8">
我已经使用了波纹管功能并且它对我有用
call_user_func_array('mb_convert_encoding',数组(&$str,'HTML-ENTITIES','UTF-8'));