【发布时间】:2017-07-18 13:09:26
【问题描述】:
我有一个字符串,在 Notepad++ 中显示时显示为:
App.xEFxBFxBF35
tocken EFxBFxBF 接缝是一些应用程序无法处理的 UTF 实体(对我来说是红移)。
在记事本中,字符串读作
App.35
如何从 c# 中的字符串中删除此实体?
编辑
在 Visual Studio 中,字符串在调试器中显示为
"App.\uffff35"
编辑 1
最后发现,当我插入非拉丁字符时,该列的大小需要翻倍。
我通过查看 sql server 中列的字符长度创建了 redshift 表,并将该数字直接用于 redshift 中的列。这适用于具有拉丁字符的语言,但不适用于非拉丁字符。
我通过这个红移查询发现了不同的长度。
select bit_length('M');
select bit_length('Б');
select bit_length('Ö');
回馈 8,16,16
【问题讨论】:
-
您在 Redshift 中使用什么数据类型?您应该使用
VARCHAR而不是CHAR- 请参阅docs.aws.amazon.com/redshift/latest/dg/…。 -
我正在使用这个版本的 redhshift 并且上面有 varchar PostgreSQL 8.0.2 on i686-pc-linux-gnu,由 GCC gcc (GCC) 3.4.2 20041017 (Red Hat 3.4.2 -6.fc3),红移 1.0.1385
标签: c# unicode amazon-redshift