免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: buypro9
打印 上一主题 下一主题

关于utf-8 代码转换问题 求解 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2011-01-19 11:12 |只看该作者
回复 7# bernana


   
   你确定这个可行??怎么我得到的结果是 E2D;& #x6587;


你需要将字符串$后面的空格去掉 为防止系统过滤掉才加了空格的

论坛徽章:
1
摩羯座
日期:2014-12-29 15:59:36
12 [报告]
发表于 2011-01-19 11:46 |只看该作者
8楼已经回答你了。
你可以用火狐体验一下各种编码的转换
https://addons.mozilla.org/zh-CN ... oding-and-decoding/

论坛徽章:
0
13 [报告]
发表于 2011-01-19 12:08 |只看该作者
还有个问题


我按照  ziyunfei  的方法 想获得这种编码的字符串  可结果得到的不是那种格式的。怎么才能转成字符串1那种格式?
  1. #!/usr/bin/perl
  2. # =================================================

  3. use HTML::Entities;
  4. use CGI;
  5. $a = "中文";
  6. $query = new CGI;
  7. print $query->header(  -charset=>'gb2312' );  

  8. #print decode_entities($a);  ### ok version for decode

  9. print encode_entities($a);  #涓?枃

  10. #print encode_entities($a, "\200-\377");

  11. #http://www.xav.com/perl/site/lib/HTML/Entities.html
复制代码
结果返回的是 “涓?枃”  并是不是字符串1的型式  

??????  
帮帮我  
谢谢

论坛徽章:
1
摩羯座
日期:2014-12-29 15:59:36
14 [报告]
发表于 2011-01-19 12:31 |只看该作者
#!/usr/bin/perl -w
use HTML::Entities;
use utf8;
$a = "中文";
print encode_entities($a)."\n";

论坛徽章:
0
15 [报告]
发表于 2011-01-19 13:09 |只看该作者
楼上的老大 好像还是不行哦


这是运行结果

Microsoft Windows [版本 5.2.3790]
(C) 版权所有 1985-2003 Microsoft Corp.

R:\>perl coding.cgi
Malformed UTF-8 character (unexpected non-continuation byte 0xd0, immediately af
ter start byte 0xd6) at coding.cgi line 4.
Malformed UTF-8 character (unexpected non-continuation byte 0xce, immediately af
ter start byte 0xd0) at coding.cgi line 4.
Malformed UTF-8 character (unexpected non-continuation byte 0xc4, immediately af
ter start byte 0xce) at coding.cgi line 4.
Malformed UTF-8 character (1 byte, need 2, after start byte 0xc4) at coding.cgi
line 4.
����



显示的是   ����

论坛徽章:
0
16 [报告]
发表于 2011-01-19 13:15 |只看该作者
本帖最后由 buypro9 于 2011-01-19 13:17 编辑

use utf8;  

有这个模块吗?这个是否activestate  perl 5.8内含的还是需要安装?怎么ppm search 找不到?

我win2003平台测试出错是否没安装utf8?

论坛徽章:
1
摩羯座
日期:2014-12-29 15:59:36
17 [报告]
发表于 2011-01-19 13:26 |只看该作者
use utf8;  

有这个模块吗?这个是否activestate  perl 5.8内含的还是需要安装?怎么ppm search 找不到? ...
buypro9 发表于 2011-01-19 13:15

你的脚本文件得是utf8编码没有dom的。
很明显是ANSI的

论坛徽章:
0
18 [报告]
发表于 2011-01-19 14:09 |只看该作者
本帖最后由 buypro9 于 2011-01-19 14:15 编辑

显示出来的是中文字 并不是 & #x5DE5;& #x5177;
也就是不是 & #xNNNN;格式  & #xNNNN; 是7bit的

老大能否写个脚本在页面上显示出来& #xNNNN;这样的格式???

我是这样测试的  结果页面返回 “中国” 如何让页面返回  & #x5DE5;& #x5177;  ?
也 就是返回的效果和 http://tool.chinaz.com/Tools/UTF-8.aspx 转换后一样

  
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>tf8 Example</title>

</head>
<body>
中文中文中文  <br>
<form method="post" action="7bit.cgi">

  <p>word: <input name="word" type="text">  
<input type="submit" name="Submit" value=" 查询 ">
</form>



</body>
</html>



-------------7bit.cgi--------------
#!/usr/bin/perl -w
use CGI;
use HTML::Entities;
use utf8;
$query = new CGI;

$secretword = $query->param('word');
$remotehost = $query->remote_host();

my $a = $secretword;
$a = decode_entities($a);

print $query->header(  -charset=>'utf-8' );  



print "||||$a";

论坛徽章:
1
摩羯座
日期:2014-12-29 15:59:36
19 [报告]
发表于 2011-01-19 14:29 |只看该作者
&amp;#x4E2D;&amp;#x6587;

论坛徽章:
0
20 [报告]
发表于 2011-01-19 15:35 |只看该作者
不好意思是该输出  &amp;#x4E2D;&amp;#x6587;



ziyunfei (紫云飞) 你测试页面上输出了  &amp;#x4E2D;&amp;#x6587; ? 我怎么只能输出中文而不是
&amp;#x4E2D;&amp;#x6587; ??
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP