php/mysql - 外来字符

标签 php mysql

我在显示外来字符时遇到问题(带有重音符号的字符,例如:é à ù ç 等等)

数据库中的行是这样的:

    Name | Datatype | Charset 
title | varchar(255) | utf8_general_ci

我是这样存储的:

function inputFilter($var)
{
    $var = trim(htmlentities(strip_tags($var)));

    if (get_magic_quotes_gpc())
        $var = stripslashes($var);

    $var = mysql_real_escape_string($var);

    return $var;
}
$title = inputFilter($_POST['title']);

然后我这样打印:

print $getfromdb['title'];

打印出来的是这样的:

Português //Should be: Português

我尝试添加: htmlspecialchars、utf8_decode/encode 和 htmlentities 打印出来,尽管没有任何帮助!

我已将此添加到标题中:

<meta charset="utf-8">

我做错了什么?

最佳答案

要遵循的步骤:

使用 UTF8 的元标记。

<meta http-equiv="content-type" content="text/html; charset=utf-8" />

将您的 PHP 设置为使用 UTF8。

mb_internal_encoding('UTF-8');
mb_http_output('UTF-8');
mb_http_input('UTF-8');

对于 mysql,您想将表转换为 UTF8。

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci

你也可以运行:

 SET NAMES UTF8

作为建立连接后的第一个查询,会将您的数据库连接转换为 UTF8。

关于php/mysql - 外来字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19546792/

相关文章:

php - 违反完整性约束 : 1452 Cannot add or update a child row in Laravel 5. 2

android - 将 Android 应用程序连接到 mysql

php - MySQL 类似函数

mysql - 使用 Vagrant 和 Chef Solo 安装 mysql cookbook

php - 在javascript中更改选定的组合框值

php - int((0.1+0.7)*10) = 7 在多种语言中。如何防止这种情况?

PHP 重试脚本直到成功或错误

具有可变字段的PHP mysql交叉表

php - 保存 woocommerce 产品后,什么是 wordpress/woocommerce 钩子(Hook)?

php - 复制行,同时忽略基于特定列的重复项