首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >摘要:沙及utf8

摘要:沙及utf8
EN

Stack Overflow用户
提问于 2014-01-23 18:02:22
回答 1查看 524关注 0票数 2

我有utf8数据,通过以下方式传递给我以摘要::SHA:

代码语言:javascript
复制
my $sha1=Digest::SHA->new;  

foreach (@fields ) {  $sha->add($record)       }
        print $sha1->hexdigest;

但是,我会有意想不到的行为,每次我在http://metacpan.org/pod/Digest::SHA上看到不同的摘要时,我在UTF8上看到使用digest会产生副作用,我尝试了以下几种方法,但这两种方法都不管用:

代码语言:javascript
复制
{use bytes;

foreach (@fields ) {  $sha->add($record)       }
        print    $sha1->hexdigest;
 }

代码语言:javascript
复制
 use Encode qw(encode_utf8);
  foreach (@fields ) {  $sha->add((encode_utf8($record))       }
        print    $sha1->hexdigest;

如有任何帮助,将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-23 19:00:03

没有看到您的实际数据(例如use Data::Dumper; $Data::Dumper::Useqq=1; print Dumper $record;)和您期望的SHA,就很难提供帮助。

尽管如此,您可能会发现获得一致SHA的最简单方法是强制json编码只输出ASCII,并确保它始终以一致的顺序放置散列元素:

代码语言:javascript
复制
use JSON;
$serialized = JSON::to_json( $data_structure, { 'ascii' => 1, 'canonical' => 1 } );
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21315985

复制
相关文章

相似问题

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