sqlite3运行sql - 选择所有PUA字符

时间:2017-02-11 21:45:54

标签: unicode sqlite

我如何运行:

SELECT * FROM tablename

其中列包含PUA字符。

PUA

私人使用区域

  

在Unicode中,专用区域(PUA)是一系列代码点,根据定义,Unicode联盟不会为其分配字符。1目前,定义了三个私有使用区域:基本多语言平面(U + E000-U + F8FF),每个平面和几乎覆盖平面15和16(U + F0000-U + FFFFD,U + 100000-U + 10FFFD)。这些区域中的代码点不能被视为Unicode本身的标准化字符。它们是故意保留未定义的,以便第三方可以定义自己的字符而不会与Unicode Consortium分配冲突。根据Unicode稳定性政策,[2]在未来的所有Unicode版本中,私人使用区域将继续为此目的而分配。

     

对于私人使用区域字符的分配在组织内部严格意义上不一定是“私人的”;一些组织已经发布了一些任务方案。这种发布可以包括支持定义的字体(显示字形),以及利用私人使用字符的软件(例如,用于“打印文档”功能的图形字符)。根据定义,多个私人方可以为同一个代码点分配不同的字符,结果是用户可能会看到一个安装字体中的一个私有字符,而另一个字符的意图是不同的。

无论如何我可以在我的sqlite表中找到这个字符子集吗?

1 个答案:

答案 0 :(得分:1)

PUA字符是有效的Unicode字符;只需在查询中使用它们:

SELECT *
FROM TableName
WHERE (ColumnName >= '' AND ColumnName < '豈')  -- E000, F900
   OR (ColumnName >= '' AND ColumnName < '')  -- F0000, FFFFE
   OR (ColumnName >= '' AND ColumnName < ''); -- 100000, 10FFFE

如果您无法将此类字符直接插入查询字符串,请使用char() function