标签: decoding

无法在 PHP 中解码 JSON 值

我没有找到解决方案。

\n\n

我有一个 API 女巫给我 JSON 响应,

\n\n

http://api.vajehyab.com/v2/public/?q=%D8%B3%D9%84%D8%A7%D9%85&developer=stackoverflow

\n\n

是这样的,

\n\n
\n

{“搜索”:{“q”:“\\ u0633 \\ u0644 \\ u0627 \\ u0645”,“代码”:200},“数据”:{“标题”:“\\ u0633 \\ u0644 \\ u0627\\u0645","发音":"","文字":"(\\u0633\\u064e) [ \\u0639 . ] (\\u0645\\u0635 \\u0644 .) 1 - \\u062f\ \u0631\u0648\u062f \u06af\u0641\u062a\u0646 .2 - \u0628\u06cc \u06af\u0632\u0646\u062f \u0634\u062f\u0646 . 3 - \\u06af\\u0631\\u062f\\u0646 \\u0646\\u0647\\u0627\\u062f\\u0646 . \\u061b ~ \\u0639\\u0644\\u06cc\\u06a9 \\u062f \\u0631\\u0648\\u062f \\u0628\\u0631 \\u062a\\u0648 \\u0628\\u0627\\u062f.\\u061b ~ \\u0639\\u0644\\u06cc\\u06a9\\u0645 \\u062f\\u0631\\u0648\\u062f \\u0628\\u0631 \\u0634\\u0645\\u0627。”,“来源”:“\\u0641\\u0631\\u0647\\u0646\\u06af \\u0641\\u0627\\u0631\\u0633\\u06cc \\u0645\\u0639\\u06cc\\u0646 | \\u0648\\u0627\\u0698\\u0647 \\u06cc\\u0627\\u0628" ,"永久链接":"?q=%D8%B3%D9%84%D8%A7%D9%85"},"错误":{"消息":"","原因":""},"广告":{"text":"","url":""}}

\n
\n\n

它似乎没有问题,我可以在其他工具中解码它,但 PHP,我不能在 PHP 中解码它

\n\n
$json = file_get_contents(\'http://api.vajehyab.com/v2/public/?q=\'.urlencode(\'\xd8\xb3\xd9\x84\xd8\xa7\xd9\x85\').\'&developer=stackoverflow\');\nvar_dump(json_decode($json)); // null\n …
Run Code Online (Sandbox Code Playgroud)

php json decode decoding

5
推荐指数
1
解决办法
1498
查看次数

将 16 位灰度 DICOM 图像转换为 8 位:正确的过程

我一直在尝试为 DICOM 图像创建图像查看器。我的程序几乎正确地读取所有 8 位彩色和灰度图像。但是,当我尝试使用图像的前 8 位打开 16 位图像时,某些部分丢失了(使用 16 位的像素将显示为黑色而不是白色)。我真的不知道如何使用窗口中心、窗口宽度、重新缩放斜率和截距。请帮助我给出将 16 位图像转换为 8 位图像的确切步骤。另外,我不需要查看使用任何压缩技术来存储像素的文件。提前致谢。

c++ image-processing decoding dicom grayscale

5
推荐指数
1
解决办法
2338
查看次数

NODE.JS - 如何将 Base64 编码的字符串解码为视频文件?

我正在尝试根据类型将 base64 编码的字符串解码为视频或图像。

fs.writeFile(attachment_path, new Buffer(encodedString, "base64"), function(err) {
            if(err)
            {
              return callback(err);
            }
            callback(null, 'perform_create');
          });
Run Code Online (Sandbox Code Playgroud)

它不会给出任何错误并创建一个文件。图像文件工作正常,但当我播放视频文件时出现错误Could not determine type of stream。谁能告诉我我在这里错过了什么?

video base64 decoding node.js

5
推荐指数
0
解决办法
777
查看次数

编码问题:在 Python 中解码 Quoted-Printable 字符串

在 Python 中,我得到了一个以Quoted-Printable 编码的字符串

mystring="=AC=E9"
Run Code Online (Sandbox Code Playgroud)

此字符串应打印为

é

所以我想解码它并用UTF-8编码,我猜。我明白有些事情是可能的

import quopri
quopri.decodestring('=A3=E9')
Run Code Online (Sandbox Code Playgroud)

但是,我完全迷失了。您将如何解码/编码此字符串以正确打印?

python encoding decoding quoted-printable

5
推荐指数
2
解决办法
6776
查看次数

如何解码编码的 HttpWebResponse?

我有这段代码可以从 URL 获取页面 HTML,但是响应内容看起来是经过编码的。

代码:

    HttpWebRequest xhr = (HttpWebRequest) WebRequest.Create(new Uri("https://www.youtube.com/watch?v=_Ewh75YGIGQ"));
        xhr.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
        //xhr.CookieContainer = request.Account.CookieContainer;
        xhr.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
        xhr.Headers["Accept-Encoding"] = "gzip, deflate, br";
        xhr.Headers["Accept-Language"] = "en-US,en;q=0.5";
        xhr.Headers["Upgrade-Insecure-Requests"] = "1";
        xhr.KeepAlive = true;
        xhr.UserAgent = "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1)";
        xhr.Host = "www.youtube.com";
        xhr.Referer = "https://www.youtube.com/watch?v=6aCpYxzRkf4";
        var response = xhr.GetResponse();
        string html;
        using (StreamReader reader = new StreamReader(response.GetResponseStream()))
        {
            html = reader.ReadToEnd();
        }
Run Code Online (Sandbox Code Playgroud)

这些是响应标头:

    X-XSS-Protection: 1; mode=block; report=https://www.google.com/appserve/security-bugs/log/youtube
    X-Content-Type-Options: nosniff
    X-Frame-Options: SAMEORIGIN
    Strict-Transport-Security: max-age=31536000
    Content-Encoding: …
Run Code Online (Sandbox Code Playgroud)

html c# response decoding

5
推荐指数
2
解决办法
6967
查看次数

快速解码 [字符串:任意]

所以我有这个 API 返回一个字典[String: Any],我知道 Any 是Decodable或一个数组Decodable,但是我一生都无法弄清楚如何获取该字典并将其解码为某个结构:

我所拥有的基本上是这样的:

public func call<T: Codable> (completion handler: @escaping (T?) -> ()) {
    let promise = api.getPromise ()
    promise.done (on: DispatchQueue.main, { (results: [String:Any])
        let decodedResults:T? = results.decode (as: T.self) // <-- this is what I want
        handler (decodedResults)
    })
}
Run Code Online (Sandbox Code Playgroud)

我尝试将其转换为数据,然后使用以下方法对其进行解码:

let values = results.compactMap { $0.value }
let data = JSONSerialization.data (withJSONObject: values, options: [])
let decodedResult = JSONDecoder().decode(T.self, from: data)
Run Code Online (Sandbox Code Playgroud)

但它总是失败NSInvalidArgumentException,知道如何解决这个问题吗?

我试图实现但未能做到的另一件事是将值转换为元组,但我发现不可能动态创建元组。

encoding decoding swift

5
推荐指数
1
解决办法
1万
查看次数

解码子级时访问嵌套 Codable 结构中父结构的属性

在嵌套Codable结构中使用解码器时,有没有办法访问父结构的属性?

我能想到的唯一方法(尚未测试)是在父结构中也使用手动解码器,在userInfo字典中设置属性,然后userInfo在子结构中访问。但这会导致大量样板代码。我希望有一个更简单的解决方案。

struct Item: Decodable, Identifiable {
    let id: String
    let title: String
    let images: Images

    struct Images: Decodable {
        struct Image: Decodable, Identifiable {
            let id: String
            let width: Int
            let height: Int

            init(from decoder: Decoder) throws {
                let container = try decoder.container(keyedBy: CodingKeys.self)
                width = try container.decode(Int.self, forKey: .width)
                height = try container.decode(Int.self, forKey: .height)

                // How do I get `parent.parent.id` (`Item#id`) here?
                id = "\(parent.parent.id)\(width)\(height)"
            }
        }

        let original: Image
        let …
Run Code Online (Sandbox Code Playgroud)

struct decoding swift codable identifiable

5
推荐指数
1
解决办法
751
查看次数

Python - 是否有可以解码原始二进制数据的二维码扫描仪?

我相信我可以成功地将二进制数据编码为二维码,但我很难解码该数据。

这个问题的最佳答案表明 QR 码阅读器通常在解码二进制数据时遇到问题:

问题出在解码上。因为大多数解码器会尝试将其解释为文本。但由于它是二进制数据,因此您不应尝试将其作为文本处理。即使您认为可以将其从文本转换为二进制,正如您所看到的,这可能会导致值不是有效文本的问题。

对于 Python 包来说,这有多真实?我尝试过使用pyzbarand opencv,但没有成功(它们对于utf-8字符串工作得很好)。我也在努力寻找 pyzbar 的有用文档,而 opencv 的文档却没有什么成果。

为了完整起见,下面是我创建的一个 QR 码示例。

data = b'\x00\x00\x00\x00\x00\x00\x00\x00\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x00\x00\x01\x00\x01\x00\x00\xff\xdb\x00\x84\x00\x03\x02\x02\n\n\n\n\n\n\n\n\n\n\n\n\x08\x08\n\n\n\n\x08\x08\n\x08\x08\x08\x08\x08\x08\x08\x08\x08\n\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\n\x08\x08\x08\x08\n\n\n\x08\x08\r\r\n\x08\r\x08\x08\n\x08\x01\x03\x04\x04\x06\x05\x06\n\x06\x06\n\x0f\x0e\x0b\r\x0f\x0f\x0f\x0f\x10\x10\x0f\x0f\x0f\x0f\x0f\x0f\x0f\r\r\r\x0f\r\x0f\x0f\x0f\r\r\r\r\x0f\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\xff\xc0\x00\x11\x08\x01@\x02\x00\x03\x01\x11\x00\x02\x11\x01\x03\x11\x01\xff\xc4\x00\x1d\x00\x00\x02\x03\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x04\x05\x02\x03\x06\x01\x07\x00\x08\t\xff\xc4\x00C\x10\x00\x02\x01\x02\x04\x04\x03\x05\x06\x06\x01\x03\x03\x03\x05\x00\x01\x02\x11\x00\x03\x04\x12!1\x05\x06"AQaq\x07\x132\x81\xf0\x14\x91\xa1\xb1\xc1\xd1\x08\x15#B'
Run Code Online (Sandbox Code Playgroud)

为了从该字节字符串生成二维码,我使用该segmo库,如下所示:

qr = segno.make(data)
qr.save(path/to/output/file) 
Run Code Online (Sandbox Code Playgroud)

这是生成的二维码:

python qr-code decoding

5
推荐指数
0
解决办法
1479
查看次数

如何将解析后的 CS:GO 十字线代码对象编码回字符串表示形式?

我有一个函数将 CS:GO 十字线代码解码为键值对象。

(之前我问过如何解码CS:GO的分享代码的问题在这里

如何从解码这些值反转为将它们编码为由字母数字字符组成的“共享代码”?

函数解码分享代码:

const BigNumber = require("bignumber.js");

// Intentionally no 0 and 1 number in DICTIONARY
const DICTIONARY = "ABCDEFGHJKLMNOPQRSTUVWXYZabcdefhijkmnopqrstuvwxyz23456789";
const DICTIONARY_LENGTH = DICTIONARY.length;
const SHARECODE_PATTERN = /CSGO(-?[\w]{5}){5}$/;

const bigNumberToByteArray = big => {
  const str = big.toString(16).padStart(36, "0");
  const bytes = [];

  for (let i = 0; i < str.length; i += 2) {
    bytes.push(parseInt(str.slice(i, i + 2), 16));
  }

  return bytes;
}

const parseBytes = bytes => {
  return {
    cl_crosshairgap: Int8Array.of(bytes[2])[0] / …
Run Code Online (Sandbox Code Playgroud)

javascript encoding byte decoding node.js

5
推荐指数
1
解决办法
690
查看次数

Scala 中使用 java.util.Base64 的非法 base64 字符“a”

假设我从 github API 调用到文件有以下 Base64 编码的字符串:

LyoKICogQ29weXJpZ2h0IDIwMTkgY29tLmdpdGh1Yi50aGVvcnlkdWRlcwog
KgogKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNp
b24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKICogeW91IG1heSBub3QgdXNlIHRo
aXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNl
LgogKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQK
ICoKICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNF
TlNFLTIuMAogKgogKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBs
YXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiAqIGRpc3Ry
aWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFu
ICJBUyBJUyIgQkFTSVMsCiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05E
SVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVk
LgogKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFn
ZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAqIGxpbWl0YXRpb25zIHVu
ZGVyIHRoZSBMaWNlbnNlLgogKi8KCnBhY2thZ2UgY29tLmdpdGh1Yi50aGVv
cnlkdWRlcy5tb2RlbAoKaW1wb3J0IGNvbS5naXRodWIudGhlb3J5ZHVkZXMu
dXRpbC5LaXZ5UHJldHR5UHJpbnRlcgppbXBvcnQgb3JnLmJpdGJ1Y2tldC5p
bmt5dG9uaWsua2lhbWEuPT0+CmltcG9ydCBvcmcuYml0YnVja2V0Lmlua3l0
b25pay5raWFtYS5yZXdyaXRpbmcuUmV3cml0ZXIuXwppbXBvcnQgb3JnLmJp
dGJ1Y2tldC5pbmt5dG9uaWsua2lhbWEucmV3cml0aW5nLlN0cmF0ZWd5Cgov
KioKICogQmFzZSBUeXBlIGZvciBhbGwgbm9kZXMgb2YgYSBLaXZ5LUFTVAog
Ki8KdHJhaXQgQVNUTm9kZSBleHRlbmRzIEZvbGRhYmxlQVNUIHsgc2VsZiA9
PgogIC8qKgogICAqIFRyYXZlcnNlcyB0aGUgQVNUTm9kZSBhbmQgYXBwbGll
cyBTdHJhdGVneSBgc2Agb250byBgc2VsZmAgYW5kIGFsbCBjaGlsZHJlbiBv
ZiBzZWxmLgogICAqCiAgICogYHNgIGlzIGhlcmVieSBhcHBsaWVkIGJvdHRv
bSB1cCBpbiBsZWZ0IHRvIHJpZ2h0IG9yZGVyLgogICAqCiAgICogQHNlZSBb
W2h0dHBzOi8vYml0YnVja2V0Lm9yZy9pbmt5dG9uaWsva2lhbWEvc3JjLzAz
MjYzMGZhMjFkZGFkNWNmMzNjYmQ2ZWY5YzJmMDI3ODY2MWE2NzUvd2lraS9S
ZXdyaXRpbmcubWRdXQogICAqIEBwYXJhbSBzIHN0cmF0ZWd5IHRoYXQgaXMg
YXBwbGllZCB0byBgc2VsZmAgYW5kIGFsbCBjaGlsZHJlbi4KICAgKiBAcmV0
dXJuIGEgcmV3cml0dGVuIEFTVE5vZGUgYWNjb3JkaW5nIHRvIHRoZSBzdHJh
dGVneSBgc2AKICAgKi8KICBwcml2YXRlW3RoZW9yeWR1ZGVzXSBkZWYgdHJh
dmVyc2VBbmRBcHBseShzOlN0cmF0ZWd5KTpBU1ROb2RlCgogIC8qKgogICAq
IFJld3JpdGUgdGhlIEFTVE5vZGUgYHNlbGZgIGJ5IHRoZSBzcGVjaWZpY2F0
aW9uIG9mIGEgcGFydGlhbCBmdW5jdGlvbiBgZnBgLgogICAqCiAgICogSWYg
d2Ugd2FudCB0byBjaGFuZ2UgYSBzcGVjaWZpYyBbW21vZGVsLlB5dGhvbl1d
LW5vZGUgaW4gdGhlIEFTVCBmb3IgZXhhbXBsZSB3ZSBjb3VsZAogICAqIGFw
cGx5IHRoZSBmb2xsb3dpbmcgcmV3cml0ZSBzdHJhdGVneToKICAgKnt7ewog
ICAqICAgYXN0LnJld3JpdGUoewogICAqICAgIGNhc2UgUHl0aG9uKCJbMSwy
LDNdIikgPT4gUHl0aG9uKCJbMSwyLDMsNF0iKQogICAqICAgfSkKICAgKn19
fQogICAqCiAgICogUGxlYXNlIG5vdGUsIHRoYXQgQVNUTm9kZXMgY2FuIG5v
dCBiZSByZXdyaXR0ZW4gYXJiaXRyYXJpbHkuIFNpbmNlIGVhY2ggQVNUTm9k
ZSBpbXBsaWVzCiAgICogYSBzcGVjaWZpYyBwYXJhbWV0ZXIgbGlzdC4gQW4g
QVNUIGhhcyB0byBzdGF5IHN0cnVjdHVyZS1jb25zaXN0ZW50IGFmdGVyIGFw
cGx5aW5nIHJld3JpdGluZyBydWxlcy4KICAgKiBBIHJld3JpdGluZyBydWxl
IGFzOgogICAqIHt7ewogICAqICAgewogICAqICAgIGNhc2UgUHl0aG9uKHMp
ID0+IFRvcExldmVsKE5pbCkKICAgKiAgIH0KICAgKiB9fX0KICAgKiBpcyBu
b3QgdmFsaWQgYXMgYSBbW21vZGVsLlRvcExldmVsXV0tbm9kZSBjYW4gbm90
IG9jY3VyIGF0IHBvc2l0aW9ucyB3aGVyZSBhIFtbbW9kZWwuUHl0aG9uXV0t
bm9kZSBjYW4uCiAgICoKICAgKiBAc2VlIFtbaHR0cHM6Ly9iaXRidWNrZXQu
b3JnL2lua3l0b25pay9raWFtYS9zcmMvMDMyNjMwZmEyMWRkYWQ1Y2YzM2Ni
ZDZlZjljMmYwMjc4NjYxYTY3NS93aWtpL1Jld3JpdGluZy5tZF1dCiAgICog
QHBhcmFtIGZwIFBhcnRpYWwgZnVuY3Rpb24gdGhhdCBkZWZpbmVzIGhvdyB0
aGUgYXN0IHNob3VsZCBiZSByZXdyaXR0ZW4uCiAgICogQHJldHVybiBBIHJl
d3JpdHRlbiBBU1QgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpY2F0aW9uIGlu
IGBmcGAgb3IgdGhlIHNhbWUgYXN0IGlmIGBmcGAgY291bGQgbm90IGJlIGFw
cGxpZWQuCiAgICovCiAgZGVmIHJld3JpdGUoZnA6QVNUTm9kZSA9PT4gQVNU
Tm9kZSk6IEFTVE5vZGUgPSBzZWxmLnRyYXZlcnNlQW5kQXBwbHkocnVsZShm
cCkpCgogIC8qKgogICAqIFRyYW5zZm9ybXMgYHNlbGZgIGludG8gYSB3ZWxs
IGZvcm1hdHRlZCBraXZ5IHByb2dyYW0gdGhhdCBjYW4gYmUgd3JpdHRlbgog
ICAqIGludG8gYSBmaWxlLgogICAqCiAgICogVGhlIGZvbGxvd2luZyBBU1RO
b2RlIGZvciBleGFtcGxlOgogICAqIHt7ewogICAqICAgVG9wTGV2ZWwoCiAg
ICogICAgTGlzdCgKICAgKiAgICAgIFJvb3QoCiAgICogICAgICAgIFdpZGdl
dCgKICAgKiAgICAgICAgICBQbG90LAogICAqICAgICAgICAgIExpc3QoCiAg
ICogICAgICAgICAgICBXaWRnZXQoCiAgICogICAgICAgICAgICAgIExpbmVH
cmFwaCwKICAgKiAgICAgICAgICAgICAgTGlzdCgKICAgKiAgICAgICAgICAg
ICAgICBQcm9wZXJ0eShiYWNrZ3JvdW5kX25vcm1hbCxMaXN0KCcnKSksCiAg
ICogICAgICAgICAgICAgICAgUHJvcGVydHkoYmFja2dyb3VuZF9jb2xvcixM
aXN0KFswLDAsMCwxXSkpCiAgICogICApKSkpKSkpCiAgICogfX19CiAgICoK
ICAgKiBpcyBwcmludGVkOgogICAqIHt7ewogICAqIFBsb3Q6CiAgICogIExp
bmVHcmFwaDoKICAgKiAgICBiYWNrZ3JvdW5kX25vcm1hbDogJycKICAgKiAg
ICBiYWNrZ3JvdW5kX2NvbG9yOiBbMCwwLDAsMV0KICAgKiB9fX0KICAgKgog
ICAqIEByZXR1cm4gQSBmb3JtYXR0ZWQgQVNUTm9kZSB0aGF0IGNhbiBiZSBp
bnRlcnByZXRlZCBhcyBhIEtpdnkgZmlsZS4KICAgKi8KICBkZWYgcHJldHR5
OlN0cmluZyA9IEtpdnlQcmV0dHlQcmludGVyLmZvcm1hdChzZWxmKS5sYXlv …
Run Code Online (Sandbox Code Playgroud)

java base64 scala decoding

5
推荐指数
2
解决办法
5093
查看次数