Wir erhalten eine Umfrage Web-Hook-Daten in Bigquery. Der Kommentar in der lokalen Sprache wird als Unicode und Sonderzeichen erfasst. Ich schreibe bereits eine Funktion, um den Unicode in eine lokale Sprache zu konvertieren, und regex, um Sonderzeichen zu vermeiden.ReGex für vermeiden Emoji - Unicode/BigQuery
#standardSQL
CREATE TEMP FUNCTION DecodeUnicode(s STRING) AS (
(SELECT CODE_POINTS_TO_STRING(ARRAY_AGG(CAST(CONCAT('0x', x) AS INT64)))
FROM UNNEST(SPLIT(s, '\\u')) AS x
WHERE x != ''
)
);
WITH NPSDashboard_Webhook_Data1_copy AS (
SELECT
TRIM(Comment) Comment
FROM
`radiant-micron-790.Sharmila_Testing.NPSDashboard_Webhook_Data1_copy`
)
,
uchars AS (
SELECT DISTINCT
c,
DecodeUnicode(c) uchar
FROM NPSDashboard_Webhook_Data1_copy,
UNNEST(REGEXP_EXTRACT_ALL(Comment, r'(\\u[abcdef0-9]{4})')) c
)
SELECT
Comment,
STRING_AGG(IFNULL(uchar, x), '' ORDER BY pos) Decoded
FROM (
SELECT
Comment,
pos,
SUBSTR(Comment,
SUM(CASE char WHEN '' THEN 1 ELSE 6 END)
OVER(PARTITION BY Comment ORDER BY pos) - CASE char WHEN '' THEN 0 ELSE 5
END,
CASE char WHEN '' THEN 1 ELSE 6 END) x,
uchar
FROM NPSDashboard_Webhook_Data1_copy,
UNNEST(REGEXP_EXTRACT_ALL(Comment, r'(\\u[abcdef0-9]{4})|.')) char WITH OFFSET AS pos
LEFT JOIN uchars u ON u.c = char
)
GROUP BY Comment
seine Rückkehr Fehler: -
Abfrage fehlgeschlagen
Fehler: Ungültige Codepoint 55357
ich fand, dass "\ ud83c \ udf38" seine Rückkehr Fehler Das ist "Cherry Blossom" in Emoji Return-Fehler. Wie Regex oder Konverter zu tun, um dieses Problem zu lösen?