php - 如何用 ñ 显示数据库值

标签 php mysql encoding

我尝试了多种类型的解决方案,例如:

-htmlentities -> 使用此功能时,所有带ñ的单词都不会显示

-htmlspecialchars -> 所有带有 ñ 的单词都是“?”

-utf8_encode ->所有有 ñ 的单词都是“?”

-html_entity_decode(htmlentities($test)); ->使用此功能时,所有带ñ的单词都不会显示

我的代码只是一个简单的选择,这是我的代码:

if (isset($_GET['cityname1'])) 
{

$cityname = strval($_GET['cityname1']);
$cname = mysql_query("SELECT cityname FROM city WHERE provinceid = '$cityname' ORDER BY cityname ASC");

echo "<option value='0'>Select Territory</option>";

  while($provincerow = mysql_fetch_array($cname))
  {
  $pname = htmlentities($provincerow['cityname']);
  echo "<option value='{$pname}'>{pname}</option>";
  }
}
else
{
echo "Please Contact the technical team";
}

最佳答案

啊,您已经进入了浏览器、PHP 和 MySQL 中字符编码的奇妙世界。

处理这些字符并不是一件小事,因为它取决于许多因素。通常来说,PHP 和 MySQL 之间的通信不是采用 UTF-8 格式,这意味着特殊字符(如 ñ)会变得困惑。所以setting the connection转为 UTF-8 是一个好的开始。此外,PHP 可能未以 UTF-8 兼容方式运行,这可以使用描述的函数 here 进行检查(和设置)。 。

正确设置此设置后,您应该能够使用 html_entities 函数将字符正确替换为 HTML 字符编码 (ñ)。

不同服务(例如 PHP 和 MySQL)之间通信的主要问题是,当它们不使用相同的字符编码时,字符(基本上是数字)将会困惑。因为 MySQL 和 PHP 都会对某个字符使用不同的数字。对于非特殊字符(例如非重音字母),这是可行的,因为这些字符非常标准化,但对于更奇怪的字符,仍然会遇到一些困难,正如您所经历的那样。

请注意,此答案假设有一个基本设置,如果我做出了不合理的假设,请提供反馈,然后我可以进一步帮助您。

关于php - 如何用 ñ 显示数据库值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31931997/

相关文章:

php - preg_match_all 只匹配一个

php - 如何在没有 apache 模块帮助的情况下压缩从多个 php 源文件生成的 html 文件?

插入文件时,MySQL 查询速度变慢

php - 找到最小值并输出用户名

video - ffmpeg:两步编码是否解决了视频转换过程中的问题?

php - 无法将产品添加到后端创建的新订单中

php - 在 PHP 中调用 bool 值成员函数 num_rows()

mysql - 两种表结构的区别

node.js - Node.js 缓冲区作为 JSON 是可移植存储格式吗?

html - perl 不在命令提示符下打印特殊字符