首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不使用utf8编码显示汉字?

问不使用utf8编码显示汉字?
EN

Stack Overflow用户
提问于 2014-08-26 19:40:06
回答 2查看 2.1K关注 0票数 2

我使用MySQL排序规则从unicode_general_ci数据库中获取行。列包含中文字符,如格拉巴酒和蒸馏物,我需要显示这些字符。

我知道,i应该使用utf-8编码:

代码语言:javascript
复制
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

,但我不能:我正在开发一个遗留应用程序,其中大多数.php文件都保存为ANSI,整个站点使用:

代码语言:javascript
复制
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

有什么方法来展示它们吗?

额外的问题:我尝试手动更改Chrome (工具-> Encodig -> UTF-8)的编码,它似乎不起作用:页面被重新加载了,但是?而不是显示汉字。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-26 19:50:33

我不确定你能不能。iso-8859-1通常被称为“拉丁文1”。根本不支持任何亚洲汉字类型的语言。

8859-1

ISO 8859-1编码它所称的“拉丁字母1号”,由191个拉丁字母组成。这种字符编码方案广泛应用于美洲、西欧、大洋洲和非洲大部分地区.它也是常用的大多数标准浪漫的东亚语言。

票数 1
EN

Stack Overflow用户

发布于 2014-08-26 20:08:09

您可以使用数字实体引用( 格 )等来显示&#26684;。在这种情况下,页的编码不重要;HTML引用总是引用Unicode代码点。

PHP有一个用于此目的的函数htmlentities,但您似乎需要处理数字实体的变通方法。这个黑客攻击相当晦涩,但在编程上可能是最简单的。

代码语言:javascript
复制
echo preg_replace('/\\\\u([0-9a-f]{4})/', '&#x$1;', 
     preg_replace('^/"(.*)"$/', '$1', json_encode($s)));

这利用了这样一个事实,即json_encode将巧合地为您完成转换;其余的都是机械师。(我想这是PHP给你的。)

IDEone演示

您的“奖励问题”并不是真正的问题,但当然,它是如何工作的;128-255范围内的原始字节很少是有效的UTF-8序列,所以除非页面上的内容是有效的UTF-8,否则很可能会得到这些字节的“无效字符”替换符号。

作为记录,如果你在格拉 代码页1252中错误地显示了你的文本中的前两种汉字符号,UTF-8将显示为ANSI(你和微软经常不小心地将其称为"ANSI") --如果页面上有这些字节,那么强制浏览器在UTF-8中显示它也应该是一种解决方案。

关于更多的背景,我推荐@deceze的每个程序员绝对、积极地需要了解编码和字符集才能处理文本。。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25513930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档