JQuery post HTML 实体/表情符号到 PHP 服务器
JQuery post HTML entity / emoji to PHP server
我正在使用 JQuery 序列化 post 表单值到 PHP/MySQL 服务器,表单 textarea 包含文本和表情符号作为 HTML 实体:
<textarea>Hello 😀 and goodbye</textarea>
服务器收到:
Hello \ud83d\ude00 and goodbye
但是,只有 "Hello" 被正确地存储在数据库中。 emoji/entity 和它之后的任何文本都消失了。数据库获取:
Hello
自始至终一切都是 UTF-8。
将其解析为可以存储的内容然后以正确呈现的方式返回到 HTML 的正确方法是什么?我一定是忽略了一些简单的东西。
已解决。
按照 Andy Foster 在问题下方的评论中更改 database/table 排序规则,或者 JSON encode/decode 以确保将其正确保存为字符串。
json_encode($str);
json_decode($str);
就我而言,影响 encoding/rendering 的三件事:
1) 初始提交使用 JQuery serialize() 将表情符号转换为 Unicode 转义序列。
2) 将 Unicode 转义序列保存到数据库中。我使用 JSON 编码来解决这个问题。
3) 将 JSON-decoded 表情符号字符串渲染回 HTML 模板时输出转义。
我正在使用 JQuery 序列化 post 表单值到 PHP/MySQL 服务器,表单 textarea 包含文本和表情符号作为 HTML 实体:
<textarea>Hello 😀 and goodbye</textarea>
服务器收到:
Hello \ud83d\ude00 and goodbye
但是,只有 "Hello" 被正确地存储在数据库中。 emoji/entity 和它之后的任何文本都消失了。数据库获取:
Hello
自始至终一切都是 UTF-8。
将其解析为可以存储的内容然后以正确呈现的方式返回到 HTML 的正确方法是什么?我一定是忽略了一些简单的东西。
已解决。
按照 Andy Foster 在问题下方的评论中更改 database/table 排序规则,或者 JSON encode/decode 以确保将其正确保存为字符串。
json_encode($str);
json_decode($str);
就我而言,影响 encoding/rendering 的三件事:
1) 初始提交使用 JQuery serialize() 将表情符号转换为 Unicode 转义序列。
2) 将 Unicode 转义序列保存到数据库中。我使用 JSON 编码来解决这个问题。
3) 将 JSON-decoded 表情符号字符串渲染回 HTML 模板时输出转义。