在Memgraph中如何表示字符串字面量的Unicode码点?是否支持UTF-16/UTF-32?
Memgraph中Unicode码点的表示与编码支持
字符串字面量中Unicode码点的表示方式
Memgraph采用标准C风格的Unicode转义规则,在字符串字面量中可通过以下两种格式表示Unicode码点:
- 针对**基本多语言平面(BMP,U+0000至U+FFFF)**的码点,使用
\uXXXX格式,其中XXXX为4位十六进制数。例如:\u00E1对应字符á。 - 针对**超出BMP范围(U+10000至U+10FFFF)**的码点,使用
\UXXXXXXXX格式,其中XXXXXXXX为8位十六进制数。例如:\U0001F600对应笑脸表情😀。
UTF-16与UTF-32码点的支持情况
Memgraph内部默认以UTF-8编码存储和处理字符串,但完全支持通过上述转义序列表示UTF-16、UTF-32覆盖的所有Unicode码点:
- 对于UTF-16需要用代理对表示的超出BMP的码点,直接使用
\U开头的8位转义即可,无需手动拆分代理对。 - UTF-32能表示的所有Unicode码点,都可以通过
\u或\U转义方式写入字符串字面量,最终会被Memgraph转换为UTF-8格式处理。
内容的提问来源于stack exchange,提问作者KWriter
相关产品推荐
相关产品推荐

