关于htmlspecialchars实体字符转码的问题

php对post过来的数据进行实体字符转码,我的页面编码是gb2312,刚开始是这样:

$post = htmlspecialchars ( $post);

  

取到的$post值为空,但是有时候是好的(中文有时会出问题),不是一直这样。

翻了一下php文档,

The third argument charset defines character set used in conversion. The default character set is ISO-8859-1. Support for this third argument was added in PHP 4.1.0.

会不会是默认编码为iso-8859-1的原因,换成gb2312试一下

$post = htmlspecialchars ( $post, ENT_NOQUOTES, ‘gb2312‘ );

  果然问题解决了。

时间: 2024-10-03 20:13:26

关于htmlspecialchars实体字符转码的问题的相关文章

C#编程总结(十)字符转码

C#编程总结(十)字符转码 为了适应某种特殊需要,字符需要根据规则进行转码,便于传输.展现以及其他操作等. 看看下面的转码,就知道他的用处了. 1.字符串转码 根据原编码格式与目标编码格式,完成转换.不过可能出现乱码哦.上一章已经介绍过了. 代码: /// <summary> /// 字符串编码转换 /// </summary> /// <param name="srcEncoding">原编码</param> /// <param

标识符和保留字以及字符转义码

标识符保留字 and  del   from nonlocal try as elif golbal not while assert else if  or with break except import pass yield class exec in  print continue finally  is  raise def for lambda return 1.以一个下划线开始的标识符 如_foo,不能使用from module import * 导入 2.前后带有双下划线的标识符

C#字符ASCII码学习经验

很多时候我们需要得到一个英文字符的 ASCII 码,或者一个汉字字符的 Unicode 码,或者从相关的编码查询它是哪一个字符的编码.很多人,尤其是从 VB 程序序转过来学 C# 的人,会报怨 C# 里为什么没有提供现成的函数来做这个事情——因为在 VB 中有 Asc() 函数和 Chr() 函数用于这类转换.但是如果你学过 C,你就会清楚,我们只需要将英文字符型数据强制转换成合适的数值型数据,就可以得到相应的C#字符ASCII码:反之,如果将一个合适的数值型数据强制转换成字符型数据,就可以得到

HTML 实体字符

有些字符,像(<)这类的,对HTML来说是有特殊意义的,所以这些字符是不允许在文本中使用的.要在HTML中显示(<)这个字符,我们就必须使用实体字符. 实体字符 有一些字符对HTML来讲是有特殊意义的,像小于符号(<)是用来定义HTML头标签的.如果我们想在浏览器中显示这类字符就必须在HTML代码中插入实体字符. 一个实体字符有三个部分:一个(&)符号,一个特殊符号名称或一个#加上一个特殊数字,最后是一个分号(;). 要显示小于符号就得在HTML中写:< 或者<使用名

Thinkphp 存储 传输中转义和实体字符之间的处理

整个流程是这样: 从redis中取出来的数据=>发送到控制器=>存储=>取出=>ajax发送至前台: 说下要注意的几点: 主要是要解决双引号转义和转为实体字符的问题: 1.存储时,create方法中要传入参数 例如这样:$model->create($_POST); 这样能避免数据存到表中的时候“转为实体字符 create未传参:[{"fid":88,"fpo":1,"sid":10,"spo":

java 字符转码与反转码

本人最近在做OAF的二次开发,在看别人写的代码时,发现总有类似这样的语句:”\u65e0\u6548\u7684GP\u9879\u76ee\u7f16\u53f7“,这些语句其实是用Java_home中的工具native2ascii.exe转码而成.在显示消息通知时,oracle并不推荐这么做,平时都是在”应用开发员“这个职责下配的消息.下面我就来介绍下如何用native2ascii.exe工具进行转码和反转码的. 1.java 字符转码 打开dos窗口,输入cmd, 并且输入:cd C:\P

实体字符,媒体标签,元素飘动标签,超链接标签

一)实体字符 一些特别的字符会被html认为是关键字,从而在页面无法显示出来,这些特殊的字符我们要用实体字符里代替,这样就能在页面显示出来了: 常用的实体字符: 空格   小于号 < 大于号 > 人民币 ¥: 版权所有 © 注册的商标 ® 在html中,这些字符我们就用实体字符来代替: <body bgcolor="#80FFFF"> 我们即将要学习 <a>"标签"<br/> 这件毛衣的价格是:¥180 <br/

python学习之路:文件with自动关闭+字符转码

with语句可实现文件的自动关闭功能: 1 import sys 2 ''' 3 with open("yesterday2","r",encoding="utf-8") as f: #自动关闭并释放文件资源 4 for line in f: 5 print(line) 6 ''' 7 with open("yesterday2","r",encoding="utf-8") as f,

实体字符

HTML 中的预留字符必须被替换为字符实体. HTML 实体 在 HTML 中,某些字符是预留的. 在 HTML 中不能使用小于号(<)和大于号(>),这是因为浏览器会误认为它们是标签. 如果希望正确地显示预留字符,我们必须在 HTML 源代码中使用字符实体(character entities). 字符实体类似这样: &entity_name; &#entity_number; 如需显示小于号,我们必须这样写:< 或 < 提示:使用实体名而不是数字的好处是,名称易