我在C#中使用序列化和反序列化来实现我的项目(这是一个类).它们被序列化并保存到XML文件中.加载项目时,一切顺利.
现在我正在尝试将序列化项目编码为Base64,然后保存文件,这也很顺利.该文件的第一行(编码之前!)如下所示:
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
Run Code Online (Sandbox Code Playgroud)
当我解码文件时,有一个?在行前添加:
?<?xml version="1.0" encoding="utf-8"?>
<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
Run Code Online (Sandbox Code Playgroud)
我用来编码的代码:
byte[] toEncodeAsBytes = System.Text.ASCIIEncoding.ASCII.GetBytes(toEncode);
string returnValue = System.Convert.ToBase64String(toEncodeAsBytes);
return returnValue;
Run Code Online (Sandbox Code Playgroud)
和解码代码:
byte[] encodedDataAsBytes = System.Convert.FromBase64String(encodedData);
string returnValue = System.Text.ASCIIEncoding.ASCII.GetString(encodedDataAsBytes);
return returnValue;
Run Code Online (Sandbox Code Playgroud)
这可以是什么,我该如何解决这个问题?
出于某种原因,在Jack’s Spindle从文本表单提交这样的字符串到php后,我得到:
Jack%u2019s Spindle
这不是什么PHP的urlencode()会做,这将是Jack%92s+Spindle
或rawurlencode()=Jack%92s%20Spindle
因此,urldecode()原始版本无法解码该字符串...是否有其他函数用于此类字符串?
-
此外,Jack’s Spindle将是HTML安全的方式编码上面,但urlencode()和原始*为此产生:Jack%26%238217%3Bs+Spindle和Jack%26%238217%3Bs%20Spindle分别...
哪里%u2019来的?它代表什么?你怎么回到那个无辜的撇号?
我的原始输入文件文本文件包含一个字符串:
Café (Should be Café)
Run Code Online (Sandbox Code Playgroud)
文本文件是 UTF8 文件。
输出可以说是另一个文本文件,所以它不一定是网页。
我可以使用哪些 C# 方法来输出正确的格式, Café?
我有一个在Base64中编码的字符串:
eJx9xEERACAIBMBKJyKDcTzR_hEsgOxjAcBQFVVNvi3qEsrRnWXwbhHOmzWnctPHPVkPu-4vBQ==
Run Code Online (Sandbox Code Playgroud)
如何用Scala语言解码它?
我试着用:
val bytes1 = new sun.misc.BASE64Decoder().decodeBuffer(compressed_code_string)
Run Code Online (Sandbox Code Playgroud)
但是当我将字节数组与我在Python语言中生成的正确数组进行比较时,就会出现错误.这是我在python中使用的命令:
import base64
base64.urlsafe_b64decode(compressed_code_string)
Run Code Online (Sandbox Code Playgroud)
Scala中的字节数组是:
(120, -100, 125, -60, 65, 17, 0, 32, 8, 4, -64, 74, 39, 34, -125, 113, 60, -47, -2, 17, 44, -128, -20, 99, 1, -64, 80, 21, 85, 77, -66, 45, -22, 18, -54, -47, -99, 101, -16, 110, 17, -50, -101, 53, -89, 114, -45, -57, 61, 89, 15, -69, -2, 47, 5)
而在python中生成的是:
(120, -100, 125, -60, 65, 17, 0, 32, 8, 4, …
当您错误地解码字符时,您如何识别原始字符串的可能候选者?
Ä×èÈÄÄî?è¤ô_üiâAâjâüâpâXüj_10òb.png
Run Code Online (Sandbox Code Playgroud)
我知道这个图像文件名应该是一些日语字符。但是由于对 urllib 引用/取消引用、编码和解码 iso8859-1、utf8 的各种猜测,我一直无法取消并获得原始文件名。
腐败是可逆的吗?
我正在使用URL安全的Base64编码来编码我随机生成的字节数组.但我解码时遇到问题.当我解码两个不同的字符串(除了最后一个字符都相同)之外,它产生相同的字节数组.例如,对于两者"dGVzdCBzdHJpbmr"和"dGVzdCBzdHJpbmq"字符串,结果都是相同的:
Array(116, 101, 115, 116, 32, 115, 116, 114, 105, 110, 106)
Run Code Online (Sandbox Code Playgroud)
对于编码/解码,我使用java.util.Base64这种方式:
// encoding...
Base64.getUrlEncoder().withoutPadding().encodeToString(myString.getBytes())
// decoding...
Base64.getUrlDecoder().decode(base64String)
Run Code Online (Sandbox Code Playgroud)
这次碰撞的原因是什么?除了最后一个之外,是否还可以使用字符?我如何解决这个问题并使解码为每个不同的字符串返回不同的字节数组?
我正在尝试解码表示存储在db中的图像的base64字符串.我在SO上尝试了很多库和解决方案,但我仍然无法正确解码图像.特别是,使用以下代码:
var img = new Buffer(b64, 'base64').toString('ascii');
Run Code Online (Sandbox Code Playgroud)
我得到一个类似的二进制表示,除了第一个字节.这是base64字符串的初始部分:
/9j/4RxVRXhpZgAASUkqAAgAAAANADIBAgAUAAAAqgAAACWIBAABAAAAiwYAABABAgAIAAAAvgAA
Run Code Online (Sandbox Code Playgroud)
以下是原始图像的前50个字节:
ffd8ffe11c5545786966000049492a00080000000d003201020014000000aa00000025880400010000008b06000010010200
Run Code Online (Sandbox Code Playgroud)
这里是我用javascript获得的字符串的前50个字节:
7f587f611c5545786966000049492a00080000000d0032010200140000002a00000025080400010000000b06000010010200
Run Code Online (Sandbox Code Playgroud)
你怎么看,这两个字符串是相同的,除了fisrt 3字节和中间几个字节.
有人可以帮助我理解为什么会这样,以及如何解决它?谢谢
我正在将 CKeditor 用于我的 Laravel 5.1 自定义 CMS。当我在我的视图中请求数据库中存储页面的内容时,它们会显示为 HTML 标记,如<p>Hello world</p>. 我使用html_entity_decode()和不使用指定的字符集都无济于事。还值得一提的是,在我看来,我使用的是 Blade 模板引擎。因此,我的演示代码看起来像
$post->content = '<p>Hello world</p>'; // from the database from controller
{{html_entity_decode($post->content)}} //did not decode
Run Code Online (Sandbox Code Playgroud)
我也尝试在我的控制器中使用它,但它没有像这样改变任何东西
$post->content = html_entity_decode($post->content); //before sending it to the view
Run Code Online (Sandbox Code Playgroud)
我需要你的帮助来解决这个问题。
我正在尝试分析一些没有任何规范的旧二进制格式。我发现有一个 96 个浮点数的数组,每个 4 字节长。
我花了很多时间使用不同的十六进制<->浮动工具,但没有运气。我找不到任何模式。所以我怀疑它是某种不寻常的浮点表示,而不是像 IEEE-754 这样的标准。
这是字节如何映射到浮点值的一长串示例:https : //gist.github.com/anonymous/e67dd27706ba1f289a895fef70399dc9
几个例子:
80 00 00 80 = 0
00 FF 00 00 = 0
B8 EB 83 43 = 1.86281420496466
F8 AF 86 43 = 1.9018805660946
7B C2 F2 43 = 3.42793766176755
37 43 F5 43 = 3.46327992859723
6A 4D 03 44 = 3.70816455369089
26 C6 0A 44 = 3.919173581123
AF C3 79 43 = 1.76342447568475
Run Code Online (Sandbox Code Playgroud)
我能够为任何可能对分析有用的字节组合提供浮点值。
你能帮我弄清楚如何将这些原始字节转换为浮点数的公式吗?
包 JSON::XS 使用 JSON::XS::Boolean 对象来表示真/假。是否可以将真/假 json 值强制解码为 1/0 Perl 数字?
#!/usr/bin/env perl
use JSON::XS;
use Data::Dumper;
my $json = decode_json(join('', <DATA>));
print Dumper $json;
__DATA__
{
"test_true": true,
"test_false": false
}
Run Code Online (Sandbox Code Playgroud)
输出:
$VAR1 = {
'test_true' => bless( do{\(my $o = 1)}, 'JSON::XS::Boolean' ),
'test_false' => bless( do{\(my $o = 0)}, 'JSON::XS::Boolean' )
};
Run Code Online (Sandbox Code Playgroud)
在 decode_json 之后我想要这样的东西:
$VAR1 = {
'test_true' => 1,
'test_false' => 0
};
Run Code Online (Sandbox Code Playgroud)
原因:在某些情况下,很难预测 JSON::XS::Boolean 将如何使用 SOAP 序列化程序或其他序列化程序进行序列化。