我正在使用 ASP.net MVC3,我使用 Jquery.AJAX 返回了一个 Json 格式的模型,然后我将它传递到要打印的 Jquery 模板中。
例如服务器返回的 Json
{"Key":2,"Content":"I'm Jason\u003cbr /\u003ehow are you"}
而不是
{"Key":2,"Content":"I'm Jason <br /> how are you"}
当我使用 Jquery 模板将它附加到 Div 时,它打印出如下内容:
I'm Jason <br /> how are you
而预期的结果应该是
I'm Jason
how are you
Run Code Online (Sandbox Code Playgroud)
我是否想阻止服务器在服务器端对字符串进行编码?但我认为这可能会导致安全问题。
因此,我认为我必须在客户端解码 Json 字符串,但到目前为止还没有运气。任何人都可以告诉我处理此类问题的适当方法吗?
谢谢
*更新
我测试 jQuery('#someDiv').append(data.Content);并按预期打印出来。
所以问题很可能与Jquery模板有关
我正在使用此代码将数据传递到 Jquery 模板jQuery('#someTemplate').tmpl(data).appendTo('#someDiv');
我的 Jquery 模板
<script id="someTemplate" type="text/x-jquery-tmpl">
<div>${Content}</div>
</script>
Run Code Online (Sandbox Code Playgroud) 是否有用于 q 编码的库?我需要解码一些 q 编码的文本,例如:
**Subject: =?iso-8859-1?Q?=A1Hola,_se=F1or!?=**
Run Code Online (Sandbox Code Playgroud) 我正在将字节流解码为unicode字符,而不知道每百个发送者使用过的编码.
许多发件人在技术上并不精明,并且无法告诉我他们正在使用什么编码.它将由他们用于生成数据的工具链的偶然事件决定.
目前,发件人使用各种操作系统,以英国/英语为基础.
我是否可以要求所有发件人向我发送一个特定字符串,这些字符将明确说明每个发件人使用的编码?
我知道有些库使用启发式来猜测编码 - 我也会追逐它,作为运行时回退,但首先我想尝试确定正在使用的编码,如果可以的话.
(不要认为它是相关的,但我在使用Python)
我正在解码的类使用字符串字段,Newtonsoft默认解码器将json文件中的布尔值转换为大写字符串。它可能会调用布尔类型的ToString(),结果为“ True”或“ False”。
void Main()
{
var foo = JsonConvert.DeserializeObject<Foo>("{Prop:true}");
Console.WriteLine(foo.Prop); // output: True, desired output: true
}
public class Foo
{
public string Prop{get;set;}
}
Run Code Online (Sandbox Code Playgroud)
由于该字段在json中可以是字符串或布尔值,因此我希望有一个自定义解码器,该解码器始终根据值将json-boolean转换为“ true”或“ false”。
任何帮助,将不胜感激。
我没有找到解决方案。
\n\n我有一个 API 女巫给我 JSON 响应,
\n\nhttp://api.vajehyab.com/v2/public/?q=%D8%B3%D9%84%D8%A7%D9%85&developer=stackoverflow
\n\n是这样的,
\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
它似乎没有问题,我可以在其他工具中解码它,但 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) 我正在使用以下数据来解码 UTF-8 编码的字符串。
实际字符串:?????“?”?? ???????????????20160430?T
UTF-8 编码:ç§|ä¸ä¿ï¼ç¨âå¿âå·¥ä½ æ¾å°å±äºèªå·±çæå°±æãå¼è®²å¦ 20160430ã"
. 输出与输入相同。问题是什么?
方法:
public String decodeString(String encodedString) {
return new String(encodedString.getBytes(), "UTF-8");
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试根据类型将 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。谁能告诉我我在这里错过了什么?
在 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)
但是,我完全迷失了。您将如何解码/编码此字符串以正确打印?
在嵌套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) 假设我从 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)