和珅虽是奸臣但也不能被 GBK 看不起啊 - -!

2015-08-27 16:50:18 +08:00
 hanbing

“珅”字: GBK 不认得(字库里应该没有这个字),需要将字符串用“|” explode 分割为数组,有好的解决办法?

code 存储编码: GBK

以下是测试 code

<?php
$str = '和珅虽是奸臣|为什么被 GBK 歧视';
$arr = explode ('|',$str );
print_r ($arr );
?>

目前我们用的办法: GBK 先转 UTF8 再转回来,感觉比较麻烦,有神马神秘简单的方法没?

<?php
$str = '和珅虽是奸臣|为什么被 GBK 歧视';
$str = iconv ('GBK', 'UTF-8', $str );
$arr = explode ('|',$str );

print_r (utf_gbk ($arr ));

function utf_gbk ($data ){
    if (is_array ($data )){
        foreach ($data as $k=>$v ){
            $result[$k] = utf_gbk ($v );
        }
    }else{
        $result =  iconv ("UTF-8", "GBK//IGNORE", $data );
    }
    return $result;
}
?>
5095 次点击
所在节点    PHP
25 条回复
coffeecat
2015-08-27 22:51:42 +08:00
转码以后你会看到 “珅 ”的一半跟“ |” 是一样的,分隔符不能这么用的,你换个就行了。。。
lululau
2015-08-27 22:52:15 +08:00
我错了,我不懂这世上最好的语言,不了解 PHP 的多字节字符串处理是什么样的,我也不该瞎举例子。


我只想问下 LZ , GBK 里没珅
lululau
2015-08-27 22:53:21 +08:00
字的话,你的那个 GBK 编码的 PHP 代码里是怎么有个 shen 字的。。。。
hanbing
2015-08-28 09:07:04 +08:00
@lululau 数据库里序列化存着大量这类坑爹信息的,都是历史问题~
21grams
2015-08-28 13:51:17 +08:00
GBK 里怎么可能没有珅,简直是扯淡

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/216431

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX