我的理解(可能显然是错误的)是Authen :: OATH模块与Google Authenticator App生成的totp代码兼容.但它对我不起作用,而类似的红宝石代码则有用.我们在这里是一个perl商店,如果有人能指出我正确的方向来帮助我免于逐行挖掘两个库,那将会有所帮助.
这款红宝石兼容:
require 'rubygems'
require 'rotp'
secret = "bqagf6ohx4rp3a67"
puts ROTP::TOTP.new(secret).now.to_s
Run Code Online (Sandbox Code Playgroud)
这个perl没有:
use Authen::OATH;
my $oath = Authen::OATH->new();
my $totp = $oath->totp(" bqagf6ohx4rp3a67" );
print "$totp\n";
Run Code Online (Sandbox Code Playgroud) 为什么"counter"和"type"在以下摘录中以加号为前缀?
export type counterStateType = {
+counter: number
};
type actionType = {
+type: string
};
Run Code Online (Sandbox Code Playgroud)
(这段代码取自我试图解决的电子反应样板应用程序.我已经用Google搜索和binged,我设法建立的是类型来自"Flow").
有了这个输入文件
<?xml version="1.0" encoding="UTF-8"?>
<entry>
<title>ú</title>
</entry>
Run Code Online (Sandbox Code Playgroud)
和这段代码,
my $raw_xml = read_file("test.xml", binmode => 'raw');
print "$raw_xml\n";
$raw_xml =~ /<title>(.*?)</;
print "Regex finds [$1]\n"; # prints u+accent to UTF8 terminal
my $dom = XML::LibXML->load_xml(string => $raw_xml);
my $xpc = XML::LibXML::XPathContext->new($dom);
my ($entry) = $xpc->findnodes('entry');
my $title = $xpc->findvalue('title', $entry) || '';
print "title is now [$title]\n"; # prints garbage character to UTF8 terminal, u+accent to ISO-8859-1 terminal
Run Code Online (Sandbox Code Playgroud)
哪里/为什么是完美的utf8被翻译成8位字符集之一(我假设它是8859-1,可能是cp1252等)?
我通过谷歌发现的一切都表明它应该从头到尾都是utf8.但显然不是.
注意:如果我使用binmode在文件句柄上打开文件并将其传递给load_xml,则行为完全相同; 我碰巧在实际代码中将xml存储在内存中 - 这也意味着我可以使用正则表达式进行验证.