You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript中替换或编码左右弯双引号等特殊字符

JavaScript特殊弯引号编码解决方案

问题根因

你当前的代码没有生效,核心原因是\u201c在JavaScript字符串中本身就是“字符的Unicode表示,执行替换后JS引擎会直接把\u201c解析为对应的“字符,所以打印时看起来和原内容没有区别。

解决方案

针对性替换实现

如果仅需要处理左右弯引号这两个特殊字符,直接对转义符\做二次转义即可,代码如下:

var stmt = "select “No.”";
// 双反斜杠会被解析为字面量反斜杠,最终生成你需要的\u201c文本效果
stmt = stmt.replace('“', '\\u201c');
stmt = stmt.replace('”', '\\u201d');

console.log(stmt); 
// 输出结果:select \u201cNo.\u201d

通用全特殊字符转义

如果需要覆盖所有非ASCII类特殊字符的转义需求,可以使用以下通用工具函数:

function unicodeEscape(str) {
  return str.replace(/[^\x00-\x7F]/g, match => {
    // 取字符Unicode编码转16进制,补前导0到4位,拼接\u前缀
    return '\\u' + match.charCodeAt(0).toString(16).padStart(4, '0');
  });
}

var stmt = "select “No.”";
var result = unicodeEscape(stmt);
console.log(result);
// 输出结果:select \u201cNo.\u201d

场景注意事项

你使用sequelize入库的场景下,需要注意:

  • 转义后的字符串本身就是普通ASCII文本,入库、JSON序列化都不会出现乱码问题
  • 如果后续需要还原为原始带弯引号的字符串,直接调用JSON.parse('"' + 转义后字符串 + '"')即可完成解码
  • 若你的数据库本身配置了UTF-8编码,也可以选择直接存储原始字符串,仅在需要生成JSON格式输出时调用JSON.stringify做自动转义即可。

内容的提问来源于stack exchange,提问作者PHP User

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 20:54:05