php中编码转换问题,php 转码

本文目录一览:

php中编码转换问题

function uc2html($str) {

$ret = ‘ ‘;

for( $i=0; $i strlen($str)/2; $i++ ) {

$charcode = ord($str[$i*2])+256*ord($str[$i*2+1]);

$ret .= iconv( “utf-8 “, “gb2312 “,u2utf8($charcode));

}

return $ret;

}

function u2utf8($c) {

$str= ” “;

if ($c 0x80) {

$str.=$c;

} else if ($c 0x800) {

$str.=chr(0xC0 | $c 6);

$str.=chr(0x80 | $c 0x3F);

} else if ($c 0x10000) {

$str.=chr(0xE0 | $c 12);

$str.=chr(0x80 | $c 6 0x3F);

$str.=chr(0x80 | $c 0x3F);

} else if ($c 0x200000) {

$str.=chr(0xF0 | $c 18);

$str.=chr(0x80 | $c 12 0x3F);

$str.=chr(0x80 | $c 6 0x3F);

$str.=chr(0x80 | $c 0x3F);

}

return $str;

}

如果你不是smarty的话 试试这个 如果是smarty的话 用下面的方法

?php

/*

@Author: 蜗牛

@Blog:

@Note: 这个解决办法是基于上面那个地址提到的方法,解决了中英文截取长度时出现乱码的问题

*/

function smarty_modifier_truncate($string, $sublen = 80, $etc = ‘…’, $break_words = false, $middle = false)

{

$start=0;

$code=”UTF-8″;

if($code == ‘UTF-8’)

{

//如果有中文则减去中文的个数

$cncount=cncount($string);

if($cncount($sublen/2))

{

$sublen=ceil($sublen/2);

}

else

{

$sublen=$sublen-$cncount;

}

$pa = “/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/”;

preg_match_all($pa, $string, $t_string);

if(count($t_string[0]) – $start $sublen) return join(”, array_slice($t_string[0], $start, $sublen)).”…”;

return join(”, array_slice($t_string[0], $start, $sublen));

}

else

{

$start = $start*2;

$sublen = $sublen*2;

$strlen = strlen($string);

$tmpstr = ”;

for($i=0; $i$strlen; $i++)

{

if($i=$start $i($start+$sublen))

{

if(ord(substr($string, $i, 1))129)

{

$tmpstr.= substr($string, $i, 2);

}

else

{

$tmpstr.= substr($string, $i, 1);

}

}

if(ord(substr($string, $i, 1))129) $i++;

}

if(strlen($tmpstr)$strlen ) $tmpstr.= “…”;

return $tmpstr;

}

}

function cncount($str)

{

$len=strlen($str);

$cncount=0;

for($i=0;$i$len;$i++)

{

$temp_str=substr($str,$i,1);

if(ord($temp_str) 127)

{

$cncount++;

}

}

return ceil($cncount/3);

}

?

是可以的以上两种方法 site:

浅析PHP中的字符串编码转换(自动识别原编码)

本篇文章是对PHP中字符串编码转换的实现代码进行了详细的分析介绍,需要的朋友参考下

复制代码

代码如下:

/**

*

对数据进行编码转换

*

@param

array/string

$data

数组

*

@param

string

$output

转换后的编码

*/

function

array_iconv($data,$output

=

‘utf-8’)

{

$encode_arr

=

array(‘UTF-8′,’ASCII’,’GBK’,’GB2312′,’BIG5′,’JIS’,’eucjp-win’,’sjis-win’,’EUC-JP’);

$encoded

=

mb_detect_encoding($data,

$encode_arr);//自动判断编码

if

(!is_array($data))

{

return

mb_convert_encoding($data,

$output,

$encoded);

}

else

{

foreach

($data

as

$key=$val)

{

if(is_array($val))

{

$data[$key]

=

array_iconv($val,

$input,

$output);

}

else

{

$data[$key]

=

mb_convert_encoding($data,

$output,

$encoded);

}

}

return

$data;

}

}

php 编码转换

URLEncode:是指针对网页url中的中文字符的一种编码转化方式,最常见的就是Baidu、Google等搜索引擎中输入中文查询时候,生成经过Encode过的网页URL。

URLEncode的方式一般有两种,一种是传统的基于GB2312的Encode(Baidu、Yisou等使用),另一种是基于UTF-8的Encode(Google、Yahoo等使用)。

本工具分别实现两种方式的Encode与Decode:

中文 – GB2312的Encode – %D6%D0%CE%C4

中文 – UTF-8的Encode – %E4%B8%AD%E6%96%87

我们可以用以下代码实现转换:

?php echo urlencode(‘测试’);?

如果是gb2312编码,转换的结果为”%B2%E2%CA%D4″;

如果是utf-8编码,转换的结果为”%E6%B5%8B%E8%AF%95″;

希望我的回答你能满意啊!呵呵!

PHP 解决utf-8和gb2312编码转换问题

终于皇天不负有心人,答案还是让我找到了。

网上的都是这样用的

复制代码

代码如下:

$content

=

iconv(“utf-8″,”gb2312”,$content);

这样做其实也对着了,看着确实是把utf-8转化为gb2312了,但是实际运行的话,往往都是以失败告终的,原因呢?

原因实际上也很简单,因为任何的函数都是执行错误的时候,同时很不幸的是iconv();就很终于出现错误。现在给你正确的答案。

真正的答案是这样的

复制代码

代码如下:

$content

=

iconv(“utf-8″,”gb2312//IGNORE”,$content);

很简单的,只要后面加上一个//IGNORE就行,加上这个就可以是ICONV()函数忽略错误,继续执行。

同理,要像把gb2312换为utf-8只要写上$content

=

iconv(“gb2312″,”utf-8//IGNORE”,$content);就行

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/277422.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-19 13:21
下一篇 2024-12-19 13:21

相关推荐

  • Python官网中文版:解决你的编程问题

    Python是一种高级编程语言,它可以用于Web开发、科学计算、人工智能等领域。Python官网中文版提供了全面的资源和教程,可以帮助你入门学习和进一步提高编程技能。 一、Pyth…

    编程 2025-04-29
  • PHP和Python哪个好找工作?

    PHP和Python都是非常流行的编程语言,它们被广泛应用于不同领域的开发中。但是,在考虑择业方向的时候,很多人都会有一个问题:PHP和Python哪个好找工作?这篇文章将从多个方…

    编程 2025-04-29
  • 如何解决WPS保存提示会导致宏不可用的问题

    如果您使用过WPS,可能会碰到在保存的时候提示“文件中含有宏,保存将导致宏不可用”的问题。这个问题是因为WPS在默认情况下不允许保存带有宏的文件,为了解决这个问题,本篇文章将从多个…

    编程 2025-04-29
  • Java Thread.start() 执行几次的相关问题

    Java多线程编程作为Java开发中的重要内容,自然会有很多相关问题。在本篇文章中,我们将以Java Thread.start() 执行几次为中心,为您介绍这方面的问题及其解决方案…

    编程 2025-04-29
  • Python爬虫乱码问题

    在网络爬虫中,经常会遇到中文乱码问题。虽然Python自带了编码转换功能,但有时候会出现一些比较奇怪的情况。本文章将从多个方面对Python爬虫乱码问题进行详细的阐述,并给出对应的…

    编程 2025-04-29
  • PHP怎么接币

    想要在自己的网站或应用中接受比特币等加密货币的支付,就需要对该加密货币拥有一定的了解,并使用对应的API进行开发。本文将从多个方面详细阐述如何使用PHP接受加密货币的支付。 一、环…

    编程 2025-04-29
  • NodeJS 建立TCP连接出现粘包问题

    在TCP/IP协议中,由于TCP是面向字节流的协议,发送方把需要传输的数据流按照MSS(Maximum Segment Size,最大报文段长度)来分割成若干个TCP分节,在接收端…

    编程 2025-04-29
  • 如何解决vuejs应用在nginx非根目录下部署时访问404的问题

    当我们使用Vue.js开发应用时,我们会发现将应用部署在nginx的非根目录下时,访问该应用时会出现404错误。这是因为Vue在刷新页面或者直接访问非根目录的路由时,会认为服务器上…

    编程 2025-04-29
  • 如何解决egalaxtouch设备未找到的问题

    egalaxtouch设备未找到问题通常出现在Windows或Linux操作系统上。如果你遇到了这个问题,不要慌张,下面我们从多个方面进行详细阐述解决方案。 一、检查硬件连接 首先…

    编程 2025-04-29
  • Python折扣问题解决方案

    Python的折扣问题是在计算购物车价值时常见的问题。在计算时,需要将原价和折扣价相加以得出最终的价值。本文将从多个方面介绍Python的折扣问题,并提供相应的解决方案。 一、Py…

    编程 2025-04-28

发表回复

登录后才能评论