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

如何将表列中转义Unicode字符替换为对应可读字符实现文本规范化

转义Unicode文本转可读文本解决方案

你需要实现的是将字符串中的转义Unicode序列(格式为\uXXXX)解码为对应的Unicode字符,NORMALIZE函数的作用是统一Unicode字符的编码形式,不具备解码转义序列的功能,因此无法达到预期效果。

场景1:Excel / Google Sheets 处理

  • 可以使用自定义函数实现解码,以Google Sheets为例,按扩展程序 > Apps 脚本打开脚本编辑器,粘贴以下代码:
function DECODE_UNICODE_ESCAPE(str) {
  return str.replace(/\\u([\dA-Fa-f]{4})/g, (match, hex) => String.fromCodePoint(parseInt(hex, 16)));
}
  • 保存后回到表格,在目标单元格输入=DECODE_UNICODE_ESCAPE(待处理单元格)即可得到解码结果,示例中=DECODE_UNICODE_ESCAPE("C\u00f3mo funciona")会直接返回Cómo funciona
  • Excel使用VBA实现逻辑一致,替换对应语法即可。

场景2:Python 处理pandas数据表

  • 针对pandas的DataFrame指定列,直接使用unicode_escape编码解码即可:
import pandas as pd

# 假设df是你的数据表,target_col是待处理的列名
df[target_col] = df[target_col].str.encode('utf-8').str.decode('unicode_escape')
  • 单行文本测试:"C\u00f3mo funciona".encode('utf-8').decode('unicode_escape') 输出结果为Cómo funciona

场景3:SQL 处理

  • 以MySQL为例,可自定义函数实现转义解码:
-- 自定义解码函数
DELIMITER //
CREATE FUNCTION DECODE_UNICODE_ESCAPE(str TEXT) RETURNS TEXT
DETERMINISTIC
BEGIN
  DECLARE pos INT DEFAULT 1;
  DECLARE hex_str CHAR(4);
  DECLARE uni_char CHAR(1);
  WHILE pos <= LENGTH(str) DO
    IF SUBSTRING(str, pos, 2) = '\\u' THEN
      SET hex_str = SUBSTRING(str, pos+2, 4);
      SET uni_char = CHAR(CONV(hex_str, 16, 10) USING utf8mb4);
      SET str = CONCAT(LEFT(str, pos-1), uni_char, SUBSTRING(str, pos+6));
    ELSE
      SET pos = pos + 1;
    END IF;
  END WHILE;
  RETURN str;
END //
DELIMITER ;

-- 调用函数批量更新列
UPDATE 表名 SET 待处理列名 = DECODE_UNICODE_ESCAPE(待处理列名);

内容的提问来源于stack exchange,提问作者Julio Ayala

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 07:45:03