首页 > 解决方案 > Javascript UDF 中 BigQuery 中的 UTF 规范化问题

问题描述

我正在尝试从 UTF 字符串中去除重音符号。规范化功能似乎在 BigQuery 的 Javascript UDF 中不起作用。我已经在浏览器中测试了相同的功能,它给了我正确的结果。

BigQuery 内置了规范化功能,它工作正常,但为什么它不能在 Javascript UDF 中工作?这种行为是预期的吗?可能是什么原因?

示例查询:

CREATE TEMP FUNCTION normAndRepl(s STRING) RETURNS STRING LANGUAGE js AS """
return s.normalize('NFD').replace(/[\u0300-\u036f]/g, '')
""";

CREATE TEMP FUNCTION repl(s STRING) RETURNS STRING LANGUAGE js AS """
return s.replace(/[\u0300-\u036f]/g, '')
""";

SELECT repl(normalize('München', NFD)), normAndRepl('München')

结果与左栏中的预期一致,但不一定在右栏中。

f0_     | f1_
--------+--------
Munchen | München

标签: javascriptgoogle-bigqueryuser-defined-functions

解决方案


推荐阅读