首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >系统中的Perl、Starman Unicode宽字符

系统中的Perl、Starman Unicode宽字符
EN

Stack Overflow用户
提问于 2012-10-11 16:40:36
回答 3查看 6K关注 0票数 3

我有一个词comЯade,但是我不能用HTML打印它,因为俄罗斯的Я.我试过:

代码语言:javascript
复制
$HTML::Entities::char2entity{'Я'} = 'Я';  
$HTML::Entities::char2entity{'1071'} = 'Я';  
$HTML::Entities::char2entity{'ï'} = 'Я';  
$str = HTML::Entities::encode_entities( $str, q{Яï1071} );   

在那之后我试着:

代码语言:javascript
复制
$str =~ s/1071/Я/g;
$str =~ s/Я/Я/g;
$str =~ s/ï/Я/g;    

但在这两种情况下,我都会得到这样的错误:

/usr/local/share/perl/5.10.1/Starman/Server.pm第470.行系统中的宽字符

为什么?

一些代码:

title.mi

代码语言:javascript
复制
<%init>
binmode STDOUT, ':encoding(UTF-8)';
($str =~ s/&/%26/g;); #this is working
$str =~ s/1071/&#1071;/g;
$str =~ s/Я/&#1071;/g;
$str =~ s/ï/&#1071;/g;
</%init>
<div class="bd-headline left">
<h1 style="margin-top:0; padding-top:0;"> <% $str %> </h1>
</div>

base.mc

代码语言:javascript
复制
<head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-18 18:10:42

一些代码:

title.mi

代码语言:javascript
复制
<%init>  
        use Encode;
        my $hl = encode_utf8($str);  
        my $find = "&#1071;";   
        my $replace = "Я";  
        $hl =~ s/$find/$replace/g; 
        my $hs = HTML::Strip->new();
        my $no_html_hl = $hs->parse($hl); 
</%init>
<div class="bd-headline left">
            <h1 style="margin-top:0; padding-top:0;"> <% $no_html_hl %> </h1>
</div>

base.mc

代码语言:javascript
复制
<head>    </head>  

此链接是有帮助的。

票数 1
EN

Stack Overflow用户

发布于 2012-10-11 16:58:36

问题1:

如果您的源代码是使用UTF-8编码的,那么您没有使用use utf8;告诉Perl太多。

如果你的源代码不是用UTF-8编码的,它不可能有一个"Я“。

问题2:

文件句柄只能传输字节,但不能将Unicode字符编码为字节。这是通过使用像UTF-8这样的字符编码来完成的。您的文档指定使用什么编码?使用它对输出进行编码如下:

代码语言:javascript
复制
binmode STDOUT, ':encoding(UTF-8)';
票数 2
EN

Stack Overflow用户

发布于 2012-10-11 17:53:59

用html实体替换字符转义几乎从来都不是正确的事情。

底层服务器(催化剂?)不知道unicode。搜索CPAN,查找催化剂::Plugin::Unicode::CPAN,这可能会有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12844458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档