首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >json_encode JSON_UNESCAPED_SLASHES不工作,仍在逃避斜杠

json_encode JSON_UNESCAPED_SLASHES不工作,仍在逃避斜杠
EN

Stack Overflow用户
提问于 2019-08-23 22:30:39
回答 1查看 4.5K关注 0票数 1

我的自动完成搜索功能中断了,因为带有重音的字符是如何存储在mySQL中的。

例如,在mySQL列中,the存储为\u00c9

在接收用户输入并调用mySQL的PHP中,is \xc3\x89

json_encode()几乎完全可以将"\xc3\x89“转换为"\u00c9”。

代码语言:javascript
复制
$clean = json_encode($criteria, JSON_UNESCAPED_SLASHES);

但是,它将其转换为"\u00c9“,因此字符不匹配,即使两者都是。

JSON_UNESCAPED_SLASHES不起作用的选项。为什么它不阻止另一个反斜杠被添加在反斜杠前面?

我怎么才能让这个起作用?

编辑:我刚在下面添加了实际的代码和错误日志输出。代码:

代码语言:javascript
复制
error_log("criteria vvvvvvvvvvvvv");
error_log($criteria);

$clean = json_encode($criteria, JSON_UNESCAPED_SLASHES);  

error_log("json_encode(criteria) vvvvvvvvvvvvvv");
error_log($clean);

错误日志:

代码语言:javascript
复制
[Fri Aug 23] criteria vvvvvvvvvvvvvvv, 
[Fri Aug 23 \xc3\x89
[Fri Aug 23] json_encode(criteria) vvvvvvvvvvvvvvv, 
[Fri Aug 23] "\\u00c9"
EN

Stack Overflow用户

发布于 2019-08-23 23:25:29

第一个斜线用于防止转义“斜杠”/,顾名思义,不要期望它阻止转义返回斜杠\

代码语言:javascript
复制
echo json_encode('/'); // prints "\/"
echo json_encode('/', JSON_UNESCAPED_SLASHES); // prints "/"
echo json_encode("\\", JSON_UNESCAPED_SLASHES); // prints "\\"
//note on line 3 : the input is 1 backslash

如您所见,它只防止转义斜杠,而不是反斜杠。

关于您的问题,如果您最终使用了json_encode和类似于\\u00c9的东西,那么您必须将这个字符串作为输入\u00c9json_encode()没有做错,您使用字符串"\u00c9“而不是Unicode字符00c9,它在字符串开始时避开了反斜杠。

您的$criteria变量可能包含一个JSON编码的字符串,如"\u00c9",该字符串是在没有使用UNICODE选项的情况下被编码的,换句话说,不要使用json_encode()两次。

看看这些例子,它可以把事情弄清楚。

代码语言:javascript
复制
echo json_encode("É", JSON_UNESCAPED_SLASHES) . "\n";
echo json_encode("\u00c9", JSON_UNESCAPED_SLASHES) . "\n";
echo json_encode("\xc3\x89", JSON_UNESCAPED_SLASHES) . "\n";
echo json_encode("/") . "\n";
echo json_encode("/", JSON_UNESCAPED_SLASHES) . "\n";
echo json_encode("\\", JSON_UNESCAPED_SLASHES) . "\n";

这输出

代码语言:javascript
复制
"\u00c9"
"\\u00c9"
"\u00c9"
"\/"
"/"
"\\"

现场演示

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57633664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档