a. 如果欲使用gb2312编码,那么php要输出头:header(“Content-Type: text/html; charset=gb2312"),静态页面添加<meta http-equiv="Content-Type" content="text/html; charset=gb2312">,所有文件的编码格式为ANSI,可用记事本打开,另存为选择编码为ANSI,覆盖源文件。
b. 如果欲使用utf-8编码,那么php要输出头 :header(“Content-Type: text/html; charset=utf-8"),静态页面添加<meta http-equiv="Content-Type" content="text/html; charset=utf-8">,所有文件的编码格式为utf-8。
最近需要用到iconv函数把抓取来过的utf-8编码的页面转成gb2312, 发现只有用iconv函数把抓取过来的数据一转码数据就会无缘无故的少一些。 让我郁闷了好一会儿,去网上一查资料才知道这是iconv函数的一个bug。iconv在转换字符"—"到gb2312时会出错。解决方法很简单,就是在 需要转成的编码后加 "//IGNORE" 也就是iconv函数第二个参数后,如下:
iconv("UTF-8","GB2312//IGNORE",$data)
ignore的意思是忽略转换时的错误,如果没有ignore参数,所有该字符后面的字符串都无法被保存。
1.查看页面输入,内部,输出编码:
print_r(iconv_get_encoding("all"));
2.对指字符串进行编码转换:
echo iconv('utf-8','gb2312','我们'); //把‘我们’由utf8编码转换为gb2312编码
**iconv(in_charset,outcharset//TRANSLIT//IGNORE,$string);//'TRANSLIT':如果在输出的编码格式中不含有的字符,可以在类似编码中查找取代;'IGNORE':如果输出格式编码中不含有字符串中的某字符时,能够跳过进行后面字符的编码。否则在转码失败处会中断输出,产生错误。
3.将字符串进行编码转换(可自动判断编码类型,但听说效率没有iconv好。)
mb_convert_encoding(‘我们’, 'utf-8','gb2312' ); //将‘我们’由gb2312转换为utf8
mb_convert_encoding(‘我们’, 'utf-8'); //将‘我们’转换成utf8编码格式
$str = mb_convert_encoding($str, "EUC-JP", "auto");
$str = mb_convert_encoding($str, "UCS-2LE", "JIS, eucjp-win, sjis-win");
**第三个参数还可以是array()形式
4.设置编码格式:
iconv_set_encoding("internal_encoding", "UTF-8"); //设置内部编码为utf8
iconv_set_encoding("output_encoding", "ISO-8859-1"); //设置输出编码为ISO-8859-1
设置选项:1.input_encoding 2.output_encoding 3.internal_encoding
**ISO-8859-1编码是单字节编码,向下兼容ASCII, Latin1是ISO-8859-1的别名
5.查看字符串编码方式:
格式:string mb_detect_encoding(string$str[,mixed$encoding_list= mb_detect_order()[,bool$strict= false]] )
$str='编码方式';
echo mb_detect_encoding($str); //:UTF-8
echo mb_detect_encoding($str, "auto");
echo mb_detect_encoding($str, "JIS, eucjp-win, sjis-win");
$ary[] = "ASCII";
$ary[] = "JIS";
$ary[] = "EUC-JP";
echo mb_detect_encoding($str, $ary);
6.查看文件编码方式:
$file = 'text3.txt';
echo getFileEncoding(file_get_contents($file)); // 输出UTF-16LE
7.判断字符串是否符合指定格式编码:
格式:bool mb_check_encoding([string$var=NULL[,string$encoding= mb_internal_encoding()]] )
$string="\x00\x81";
$encoding="Shift_JIS";
mb_check_encoding($string,$encoding) //:true
8.单个或多个变量的字符编码转换:
格式:stringmb_convert_variables(string$to_encoding,mixed$from_encoding,mixed&$vars[,mixed&$...] )
**$from_encoding:可以是数字形式,用逗号分隔字符串或结构体形式。
$str1= '测试编码';$str21= '测试编码2';
$inputenc = mb_convert_variables("UTF-8", "UTF-8,GBK,GB2312", $str1, $str2);
var_dump($inputenc); //: string(5) "UTF-8"
var_dump($str1); //: string(12) "测试编码"
**CP936是GBK
- 大小: 5.4 KB
- 大小: 3.9 KB
分享到:
相关推荐
"浅谈PHP中RAR压缩文件的处理" php是当前web开发中最流行的编程语言之一,而RAR压缩文件是常见的一种压缩格式。在web应用中,为了提高效率,上传的文件大多数都是以压缩包的形式存在的,因此如何在php中实现RAR...
例如,使用`~urldecode()`函数来解码字符串,这可能使恶意代码更难被检测到。 2. 改变HTTP请求类型,将GET请求改为POST请求,以避免某些基于请求类型的检测。 **方法二:防止被识别为可疑的`eval`** `eval`函数在...
以下是关于PHP字符串反转的详细知识点。 首先,对于单字节字符集的字符串(如英文),PHP提供了一个内置函数strrev()用于实现反转。单字节字符集指的是每个字符占用一个字节,比如ASCII字符集。使用strrev()函数...
在类的构造函数中,我们通过 `mysqli` 函数进行数据库连接,并设置字符编码为UTF8。如果连接失败,会输出错误信息并退出程序。 接着,我们实现了一些辅助方法。`tbField()` 方法用于获取表的所有字段,通过执行 `...
json_encode() 函数用于将PHP变量编码为JSON格式的字符串。它的基本语法是: ```php json_encodePHP( mixed $value [, int $options = 0 [, int &$depth ]] ) ``` 这个函数可以处理不同类型的数据,如数组、对象和...
下面是一个具体的ASCII字符编码比较: ```php for ($i = 0x20; $i ; $i++) { $str .= dechex($i); } $ascii = pack("H*", $str); echo "所有的可打印的ASCII字符:(从空格到~)\n" . $ascii . "\n"; // 省略的...
文章中提到了实际编码中遇到的问题,例如在输出列表时,如果不注意在循环中修改了数组,就可能导致输出最后一行数据时出现乱码或空值。这提示我们在使用foreach进行循环输出时,一定要留意变量的作用域和生命周期,...
在PHP编程中,有时会遇到使用fopen函数创建带有中文字符的文件名时出现乱码的问题。这主要是由于编码不匹配导致的。...在编写代码时,应注重字符编码的处理,确保在不同环境下的兼容性,这样才能避免类似问题的发生。
在Windows系统中,由于操作系统对传输信息进行的再编码,导致从PHP向Python传输的字符串发生了编码上的变化。这种编码问题在不同的操作系统(如Linux和Windows)中可能有不同的表现,因此在设计跨平台应用时需要特别...
在处理XXE时,`php://filter`经常用于编码和转换文件内容,以防止解析错误。例如,当我们尝试读取包含PHP代码的文件时,可能会因为PHP标签与XML解析冲突而导致错误。这时,我们可以使用`php://filter`对文件内容进行...
通常情况下,json_encode函数能够处理包括数字、字符串、布尔值、null以及数组和对象在内的大多数PHP变量类型。 例如: ```php $arr = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 'Hello', 'PHP'); $jsonString = json_...
这里使用了json_encode函数,它接受PHP数组或对象作为参数,并返回一个JSON编码的字符串。在例子中,将两个数组封装成一个二维数组$data_arr,然后使用json_encode函数进行编码。这种转换是Web开发中非常常见的一种...
8. **使用ORM(对象关系映射)框架**:许多现代的PHP框架如Laravel和Symfony提供了内置的防止SQL注入的机制,使用这些框架可以简化安全编码。 总结来说,虽然`magic_quotes_gpc`曾经提供了一定程度的保护,但它并不...
8. **安全编码实践**:遵循OWASP(开放网络应用安全项目)的建议,采用安全的编程实践。 ### 数据处理的最佳实践 1. **使用存储过程**:存储过程可以提高性能,并且可以在服务器端进行更严密的控制和验证。 2. **...
此修饰符允许模式字符串被当作UTF-8编码处理。这对于处理包含多字节字符的字符串特别有用,比如国际化的应用中常见的Unicode字符。 修饰符的使用,可以极大地增强正则表达式的表达力和灵活性。例如,修饰符/i和/s...
在PHP编程中,处理字符串和数据安全是至关重要的任务,特别是在HTML上下文中。本文将深入探讨四个常用的字符串处理函数:html_entity_decode()、htmlentities()、addslashes()和htmlspecialchars(),以及它们在防止...
4. 最后,确保应用程序连接MySQL时也使用utf8mb4编码,例如在Java或PHP的数据库连接字符串中指定字符集。 需要注意的是,切换到utf8mb4可能会增加存储空间的需求,因为每个字符可能需要更多的字节。此外,如果你的...
2. 避免使用`eval`函数:`eval`会将字符串当作PHP代码执行,这非常危险,因为攻击者可以利用它执行任意代码。除非有严格的控制和验证机制,否则应避免使用。 3. 使用安全的会话管理:正确配置和管理PHP会话,确保...
在使用POST和GET方法时,开发者还需要注意数据在不同服务器和浏览器之间的兼容性问题,以及在表单中正确设置字符编码,比如UTF-8,以确保数据的正确显示和处理。 最后,关于文章中提到的“小编觉得挺不错的”,可以...