免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3737 | 回复: 9
打印 上一主题 下一主题

如何把UTF-8的字符串转成汉字?(不是UTF-8编码) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-09-04 17:13 |只看该作者 |倒序浏览
如下格式,
$str =  "=E5=87=BA=E7=8E=B0core=E6=96=87";
其中的数字是UTF-8的格式,怎样才能转回来呢?
原文是"出现core文"的意思。

[ 本帖最后由 cofish 于 2008-9-4 17:28 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-09-04 20:06 |只看该作者
你这个格式好奇怪哦

感觉应该是  "%E5%87%BA%E7%8E%B0core%E6%96%87"


use URI::Escape;
print URI::Escape::uri_unescape($str);

论坛徽章:
0
3 [报告]
发表于 2008-09-04 21:01 |只看该作者
lz问题有问题。好像 utf8 是 unicode 的一种存储方法。
你应该看到的是unicode 的编码

论坛徽章:
0
4 [报告]
发表于 2008-09-05 09:05 |只看该作者
原帖由 xiaoshengcaicai 于 2008-9-4 20:06 发表
你这个格式好奇怪哦

感觉应该是  "%E5%87%BA%E7%8E%B0core%E6%96%87"


use URI::Escape;
print URI::Escape::uri_unescape($str);




多谢
已解决

PS: 这种格式在很多地方用到,很多话单或日志里都是这样表示,都把%替换成=
yangfengwait 该用户已被删除
5 [报告]
发表于 2008-09-05 11:44 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
6 [报告]
发表于 2008-09-07 12:36 |只看该作者
#!/usr/bin/perl -w

use strict;
use warnings;

use URI::Escape;

$_='=E5=87=BA=E7=8E=B0core=E6=96=87';


s/=/%/g;

print "$_\n";
print URI::Escape::uri_unescape($_);

上边就是例子,但我也有些不明白的地方,在XP的DOS窗口中运行为什么不显示汉字,我把输出重定向到文件,用记事本打开就显示汉字.

[ 本帖最后由 dalian_gq 于 2008-9-9 08:22 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2008-09-07 13:10 |只看该作者
原帖由 dalian_gq 于 2008-9-7 12:36 发表
#!/usr/bin/perl -w

use strict;
use warnings;

use URI::Escape;

$_='=E5=87=BA=E7=8E=B0core=E6=96=87';


s/=/%/g;

print "$_\n";
print URI::Escape::uri_unescape($_);

上边就是例子, ...

locale

论坛徽章:
0
8 [报告]
发表于 2008-09-07 14:30 |只看该作者
我用的是中文XP,区域也是中国。locale如何设置呢?

论坛徽章:
0
9 [报告]
发表于 2008-09-08 00:27 |只看该作者
我也遇到同样的情况,希望有高手帮忙。。。

论坛徽章:
0
10 [报告]
发表于 2008-09-11 12:53 |只看该作者
#!/usr/bin/perl -w

use strict;
use warnings;

use URI::Escape;
use Encode;

$_='=E5=87=BA=E7=8E=B0core=E6=96=87';


s/=/%/g;

print "$_\n";

$_=URI::Escape::uri_unescape($_);
print $_ . "\n";

$_=encode("gb2312", decode("utf8", URI::Escape::uri_unescape($_)));
print $_ . "\n";


搞明白是怎么回事了,上面是例子。
因为XP控制台上使用gb2312编码,所以出现在XP的DOS窗口中运行显示为乱码,把输出重定向到文件,用记事本打开就显示汉字的情况。


感谢forlorngenius
原帖由 forlorngenius 于 2008-9-11 11:14 发表
encode("utf8", decode("gb2312", $str));


旧贴里也有,新贴总是得到更多关注,人的惰性呀。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP