b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

PHP iconv()函数可解决字符编码问题

电脑杂谈  发布时间:2020-05-31 00:09:57  来源:网络整理

iconv.dll_iconv函数库_php iconv

php函数库中有一个函数: iconv(),iconv函数库可以完成各种字符集之间的转换,并且是php编程中必不可少的基本函数库.

我最近正在开发一个小偷程序. 我需要使用iconv函数将捕获的UTF-8编码页面转换为gb2312. 我发现只有iconv函数会毫无理由地将捕获的数据转换为转码数据. 减. 我有些沮丧,我检查了一下信息,发现这是iconv函数中的错误. 将字符“-”转换为gb2312时,iconv将出错.

让我们看一下此功能的用法.

最简单的应用程序,用utf-8替换gb2312:

$text=iconv("GB2312","UTF-8",$text);

在使用$ text = iconv(“ UTF-8”,“ GB2312”,$ text)的过程中,如果遇到一些特殊字符,例如: “ —”,“. ”. 英文名称,转换已中断. 这些字符之后的文本将无法再转换.

iconv函数库_iconv.dll_php iconv

对于此问题,您可以使用以下代码:

$text=iconv("UTF-8","GBK",$text);

您没看错,就这么简单,不用gb2312,只需将其写为GBK.

还有另一种方法,第二个参数加// IGNORE,忽略该错误,如下所示:

iconv("UTF-8","GB2312//IGNORE",$data);

这两种方法之间没有具体的比较,我觉得第一种方法(GBK代替gb2312)更好.

php iconv_iconv.dll_iconv函数库

PHP手册中的

iconv()说明:

iconv
 
(PHP 4 >= 4.0.5, PHP 5)
iconv – Convert string to requested character encoding
Description
string iconv ( string in_charset, string out_charset, string str )
Performs a character set conversion on the string str from in_charset to out_charset. Returns the converted string or FALSE on failure.
If you append the string //TRANSLIT to out_charset transliteration is activated. This means that when a character can't be represented in the target charset, it can be approximated through one or several similarly looking characters. If you append the string //IGNORE, characters that cannot be represented in the target charset are silently discarded. Otherwise, str is cut from the first illegal character.

使用此功能进行字符串编码转换时,应注意,如果将utf-8转换为gb2312,则字符串可能会被截断. 目前,您可以使用以下方法解决:

$str=iconv('utf-8',"gb2312//TRANSLIT",file_get_contents($filepath));

这是在第二个参数中添加红字部分,这意味着如果在目标代码中找不到与源代码匹配的字符,则将选择一个相似的字符进行转换. 您还可以在这里使用: // IGNORE此参数表示无法转换的字符将被忽略.

php iconv_iconv函数库_iconv.dll

ignore表示在转换期间忽略错误. 如果没有忽略参数iconv函数库,则无法保存该字符之后的所有字符串.

iconv不是PHP的默认功能,而是默认安装的模块. 需要先安装它.

如果是Windows2000 + php,则可以修改php.ini文件,删除“;”. 在extension = php_iconv.dll之前,您需要将原始php安装文件下的iconv.dll复制到winnt / system32下(如果dll指向此目录). 在Linux环境中,使用静态安装,在配置时再添加一个--with-iconv,phpinfo可以看到iconv项. (Linux7.3 + Apache4.06 + php4.3.2).

mb_convert_encoding函数用于转换编码. 以前我不了解程序编码的概念,但现在似乎有点尴尬. 但是,英语通常没有编码问题,只有中文数据会出现此问题. 例如,当您使用Zend Studio或Editplus编写程序时,将使用gbk编码. 如果需要将数据输入,并且编码为utf8,则必须对数据进行编码和转换,否则在进入时​​会出现乱码.

成为UTF-8的GBK:

<?php 
header("content-Type: text/html; charset=Utf-8"); 
echo mb_convert_encoding("妳係我的友仔", "UTF-8", "GBK"); 
?> 

iconv.dll_php iconv_iconv函数库

另一个Big23 GB2312:

<?php 
header("content-Type: text/html; charset=big5"); 
echo mb_convert_encoding("你是我的朋友", "big5", "GB2312"); 
?> 

但是,要使用上述功能,需要安装它,但需要首先启用mbstring扩展库.

字符串mb_convert_encoding(字符串striconv函数库,字符串to_encoding [,混合from_encoding])需要首先在php.ini中启用mbstring扩展库;扩展名=之前的php_mbstring.dll;删除mb_convert_encoding可以指定多个输入编码,它将基于内容自动识别,但是执行效率比iconv差很多;

string iconv(字符串in_charset,字符串out_charset,字符串str)注意: 除了指定要转换为的编码外,第二个参数还可以添加两个后缀: // TRANSLIT和// IGNORE,其中TRANSLIT将自动将无法直接转换的字符转换为一个或多个近似字符,// IGNORE将忽略无法转换的字符,默认效果是从第一个非法字符截断.

通常使用iconv,仅当无法确定原始编码是什么或者转换后无法正常显示iconv时,才使用mb_convert_encoding函数.


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-228190-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 曾原郕
        曾原郕

        没有马云也会有张云李云

      • 张思瑜
        张思瑜

        小米你为何如此diao

      热点图片
      拼命载入中...