惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

U
Unit 42
博客园 - Franky
T
Tailwind CSS Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
月光博客
月光博客
人人都是产品经理
人人都是产品经理
雷峰网
雷峰网
Hugging Face - Blog
Hugging Face - Blog
有赞技术团队
有赞技术团队
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
阮一峰的网络日志
阮一峰的网络日志
C
Check Point Blog
爱范儿
爱范儿
T
The Blog of Author Tim Ferriss
aimingoo的专栏
aimingoo的专栏
Stack Overflow Blog
Stack Overflow Blog
博客园 - 聂微东
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
L
LangChain Blog
云风的 BLOG
云风的 BLOG
MyScale Blog
MyScale Blog
Microsoft Security Blog
Microsoft Security Blog
The Cloudflare Blog
博客园 - 三生石上(FineUI控件)

博客园 - xin478

使用nfs共享session文件导致 session_start异常缓慢问题 linux下抓取网页截图 nginx proxy_pass末尾神奇的/ 在php中使用SMTP通过密抄批量发送邮件续:修正 无聊闲做,从使用PHP数组实现约瑟夫环问题谈性能 在php中使用SMTP通过密抄批量发送邮件 使用VisualStudio开发php mysql常用的hint[转] php垃圾代码优化那档子事 配置windows下php+apache+mysql环境 惨啊!mp4固件升级惊魂 用PHP实现POP3邮件的收取 希捷酷鱼12 500G的确有问题,好惨啊 解决IE6下PNG透明问题,支持平铺背景图片 VS.PHP with VS2008 in windows7 windows7蓝屏啦 mysql使用rand随机查询记录效率测试 asp.net页面事件执行顺序 在visual studio中随意更改中文字体的方法
特殊字符的html编码转化 - xin478 - 博客园
xin478 · 2009-02-16 · via 博客园 - xin478

 采集的数据中,原来是日文的"ブリーチ, Burīchi",html代码中是ブリーチ, Burīchi,这样做有个好处,网页就不一定要像UTF-8这样的编码,但是想要原来的文字,php转半天过不来,后来发现是未指定编码集,用

html_entity_decode("ブリーチ, Burīchi",ENT_NOQUOTES,'UTF-8')


就可以了。
其实,原理也很简单,这个是模拟这个函数的功能,PHP4的话,就一定要用了

function unhtmlentities($string
{
 
// replace numeric entities
 $string = preg_replace('/([0-9a-f]+);/ei', 'uchr(hexdec("\\1"))', $string);
 
$string = preg_replace('/&#([0-9]+);/e', 'uchr("\\1")', $string);
 
// replace literal entities
 $trans_tbl = get_html_translation_table(HTML_ENTITIES);
 
$trans_tbl = array_flip($trans_tbl);
 
return strtr($string, $trans_tbl);
}
function uchr ($codes) {
 
if (is_scalar($codes)) $codes= func_get_args();
 
$str= '';
 
foreach ($codes as $code$str.= html_entity_decode('&#'.$code.';',ENT_NOQUOTES,'UTF-8');
 
return $str;
}
unhtmlentities(
"ブリーチ, Burīchi");

用.net实现下编码

   Byte[] bComments = Encoding.UTF8.GetBytes("一ンブル????中文");
   
char[] cComments = Encoding.UTF8.GetChars(bComments);
   
   StringBuilder charBuilder 
= new StringBuilder();   
   
foreach(char c in cComments)
   {
    
if(c > '\u0800')
    {
     charBuilder.Append(
"&#");
     charBuilder.Append((
int)c);
    } 
    
else
    {
     charBuilder.Append(c);
    }
   }
   Response.Write(charBuilder.ToString());

这段代码的作用是将所有的中文、韩文、日文字符通过硬编码输出成为html实体。而Html实体是不受ResponseEncoding和页面编码集影响的。

说明:

\u0800 以上的为中、韩、日字符。

中文的范围:\u4e00 - \u9fa5,日文在\u0800 - \u4e00,韩文为\u9fa5以上。