SQLite给出了正确的长度而不是JavaScript长度?

时间:2019-03-21 01:53:35

标签: sqlite

我在文本字段中插入了一个图释,其长度是1,而不是全能的javascript所说的2。

图释大小:

select length(\'\');
'length(\'\')': 1

如何获取SQLite在-UTF8- javascript中给出-correct-结果,即2?

1 个答案:

答案 0 :(得分:1)

表情符号由两个UTF-16代码点(\ud83c\udf49)或四个UTF-8字节(F0 9F 8D 89)组成。

JavaScript length函数返回字符串的UTF-16代码点数:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/length

SQLite length函数返回字符串中的字符数:

https://www.sqlite.org/lang_corefunc.html#length

换句话说:它们是两个不同的功能。

如果您在字符串的字节长度之后,则可以使用:

select length(cast('' as BLOB))

输出:

4

最好退后一步,回顾一下您实际想要实现的目标;也许有不同的方法。