在 JavaScript 中,将字符串转换为 \u 格式的 Unicode 转义序列有几种方法:
1. 使用 JSON.stringify()
function stringToUnicode(str) {
return JSON.stringify(str).slice(1, -1);
}
// 示例
console.log(stringToUnicode("Hello")); // "Hello"(普通字符不变)
console.log(stringToUnicode("你好")); // "\u4f60\u597d"
console.log(stringToUnicode("A🎉")); // "A\uD83C\uDF89"
2. 手动转换每个字符
function stringToUnicode(str) {
let result = '';
for (let i = 0; i < str.length; i++) {
const code = str.charCodeAt(i);
if (code > 127) {
result += '\\u' + code.toString(16).padStart(4, '0');
} else {
result += str[i];
}
}
return result;
}
// 示例
console.log(stringToUnicode("Hello")); // "Hello"
console.log(stringToUnicode("你好")); // "\u4f60\u597d"
3. 处理所有字符(包括 ASCII)
function stringToUnicodeAll(str) {
let result = '';
for (let i = 0; i < str.length; i++) {
const code = str.charCodeAt(i);
result += '\\u' + code.toString(16).padStart(4, '0');
}
return result;
}
// 示例
console.log(stringToUnicodeAll("Hello")); // "\u0048\u0065\u006c\u006c\u006f"
console.log(stringToUnicodeAll("你好")); // "\u4f60\u597d"
4. 处理代理对(Surrogate Pairs)
对于表情符号等需要代理对的字符:
function stringToUnicodeFull(str) {
let result = '';
for (let i = 0; i < str.length; i++) {
const code = str.codePointAt(i);
if (code > 0xFFFF) {
// 代理对字符
result += '\\u' + ((code - 0x10000) >> 10 | 0xD800).toString(16).padStart(4, '0');
result += '\\u' + ((code - 0x10000) & 0x3FF | 0xDC00).toString(16).padStart(4, '0');
i++; // 跳过下一个代码单元
} else {
result += '\\u' + code.toString(16).padStart(4, '0');
}
}
return result;
}
// 示例
console.log(stringToUnicodeFull("A🎉")); // "\u0041\uD83C\uDF89"
5. 反向转换(Unicode 转字符串)
function unicodeToString(unicodeStr) {
return unicodeStr.replace(/\\u[\dA-F]{4}/gi,
match => String.fromCharCode(parseInt(match.replace(/\\u/g, ''), 16))
);
}
// 示例
console.log(unicodeToString("\\u4f60\\u597d")); // "你好"
console.log(unicodeToString("Hello\\u4e16\\u754c")); // "Hello世界"
使用场景
- 数据传输:在网络传输或存储时使用 Unicode 转义
- 安全处理:防止特殊字符引起的问题
- 国际化:处理多语言文本
选择哪种方法取决于你的具体需求:
- 如果只需要转换非 ASCII 字符,使用方法 1 或 2
- 如果需要完整转换所有字符,使用方法 3
- 如果需要处理表情符号等复杂字符,使用方法 4
JS中进行字符串unicode化,一般是用于字符串加密。如果使用JS加密工具,比如:JShaman、JS-Obfuscator、JsJiami.online,会更方便快捷,而且不止可以加密字符串,更能对代码整体进行加密。
https://www.jshaman.com
https://www.js-obfuscator.com
https://jsjiami.online



1354

被折叠的 条评论
为什么被折叠?



