您当前的位置:首页 > 互联网教程

php "str_split"函数分割中文字符串乱码问题……

发布时间:2025-05-22 23:19:14    发布人:远客网络

php "str_split"函数分割中文字符串乱码问题……

一、php "str_split"函数分割中文字符串乱码问题……

1、测试发现,preg_split对中文(多字节)的分隔符处理可能真的存在问题.

2、原因可能是正则匹配时不能正常分隔一个多字节字符(猜测).

3、但我实验用半角(英文)的分隔符就工作得很好.

4、我在处理待分隔的文本前先对文本进行替换,把中文的句点和逗号都替换成英文半角的.然后再使用preg_split,暂时发现工作得不错.

5、记者从有关人士处获悉,嫦娥二号发射的各项准备工作全部就绪,昨日经专家组评审,卫星、火箭、发射场、测控等系统均情况正常,具备发射条件。今天起,西昌卫星发射中心的加注手将为火箭加注燃料。

6、据一位航天专家介绍,因为地球和月球都在转动的缘故,所以地月之间的最佳交汇点每年仅出现3次,而这3次便是发射探月卫星的最佳节点,经过观测,今年3次的出现时间分别为10月1日、10月2日和10月3日,而最佳发射窗口则是1日晚7时,2日晚8时和3日晚10时,其中国庆日晚7时为佳中之佳。

7、针对媒体称10月1日发射窗口时间为晚6时59分57秒,该专家告诉本报记者,早3秒并非提前3秒发射,而是将这3秒时间预留出来,作为现场指挥员在发送倒计时口令的缓冲时间。(记者万强)

8、//$input=$_POST[$content];//........................获取要分割的字符串

9、$test= str_replace(",",',',$test);

10、$test= str_replace("。",'.',$test);

11、$mode="/[,|.]/s";//......................用“逗号”和“句号”分割字符串

12、$output= preg_split($mode,$test,-1);

13、楼主不防试试,我的代码是gb2312的字串.

14、经测试在,字符串为UTF8时,也可以正常工作.

二、php如何分割中文字符串

1、php分割中文字符串,如果直接用PHP函数“str_split”来分割,会出现乱码,因为中文字符长度和英文字符长度是不一样的。

2、所以,可以建立新的函数先把字符转成ASCII值,接着通过判断不同字符的长度来正确分割中文字符串,把结果存入数组,最后再用PHP函数“join”在字符间插入百分号。

3、if($value>=192&&$value<=223)$split=2;

4、elseif($value>=224&&$value<=239)$split=3;

5、elseif($value>=240&&$value<=247)$split=4;

6、for($j=0;$j<$split;$j++,$i++){

7、$string="百度知道www.baidu.cn";

8、$arr1=str_split_utf8($string);

三、用php的 preg_split 函数分割字符串时 出现 乱码

1、研究了一个多小时,终于找到了一个解决方案.

2、测试发现,preg_split对中文(多字节)的分隔符处理可能真的存在问题.

3、原因可能是正则匹配时不能正常分隔一个多字节字符(猜测).

4、但我实验用半角(英文)的分隔符就工作得很好.

5、我在处理待分隔的文本前先对文本进行替换,把中文的句点和逗号都替换成英文半角的.然后再使用preg_split,暂时发现工作得不错.

6、记者从有关人士处获悉,嫦娥二号发射的各项准备工作全部就绪,昨日经专家组评审,卫星、火箭、发射场、测控等系统均情况正常,具备发射条件。今天起,西昌卫星发射中心的加注手将为火箭加注燃料。

7、据一位航天专家介绍,因为地球和月球都在转动的缘故,所以地月之间的最佳交汇点每年仅出现3次,而这3次便是发射探月卫星的最佳节点,经过观测,今年3次的出现时间分别为10月1日、10月2日和10月3日,而最佳发射窗口则是1日晚7时,2日晚8时和3日晚10时,其中国庆日晚7时为佳中之佳。

8、针对媒体称10月1日发射窗口时间为晚6时59分57秒,该专家告诉本报记者,早3秒并非提前3秒发射,而是将这3秒时间预留出来,作为现场指挥员在发送倒计时口令的缓冲时间。(记者万强)

9、//$input=$_POST[$content];//........................获取要分割的字符串

10、$test= str_replace(",",',',$test);

11、$test= str_replace("。",'.',$test);

12、$mode="/[,|.]/s";//......................用“逗号”和“句号”分割字符串

13、$output= preg_split($mode,$test,-1);

14、楼主不防试试,我的代码是gb2312的字串.

15、经测试在,字符串为UTF8时,也可以正常工作.