hive instr函数在使用utf8字符的字符串上工作不正确

5w9g7ksd  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(638)

配置单元instr函数在具有utf8字符的字符串上工作不正确。当重音字符是字符串的一部分时,instr为后续字符返回不正确的字符位置。它似乎在计算字节而不是字符。
将重音字符作为字符串的一部分返回8

select INSTR("Réservation:", 'a'); returns 8

如果字符串中没有重音字符,则返回7

select INSTR("Reservation:", 'a'); returns 7

是否有一个修复或替代功能,我可以使用?

4bbkushb

4bbkushb1#

这就是我用Hive1.1.0得到的,

hive>select INSTR("Réservation:", 'a');
OK
7

所以Hive没有问题。如果你还需要使用问题 INSTR 编写自己的自定义项来实现这一点。要编写自定义项,请参阅下面的链接,
单击此处查看自定义项

相关问题