当前位置: 首页 > 面试题库 >

Sql表中的Unicode字符

欧阳永宁
2023-03-14
问题内容

我正在使用Sql Server 2008 R2
Enterprise。我正在编写一个能够从Sql表中插入,更新,删除和选择记录的应用程序。当涉及包含to,as拧,胆和啪等 特殊字符
的记录时,应用程序会出错。

这是发生了什么:

命令:

INSERT INTO Account (Name, Person) 
VALUES ('Boris Borenovi膰', 'True') 
WHERE Id = '1'

插入新记录,但“名称”字段为Boris Borenovic,因此字符更改为c

命令:

SELECT * FROM Account 
WHERE Name = 'Boris Borenovi膰'

返回正确的记录,因此再次将字符替换c为该记录并返回该记录。

问题:

  1. 是否可以使Sql Server保存前面提到的和其他 特殊字符
  2. 如果解决了前面的问题,Boris Borenovi膰即使查询要求,仍有可能使Sql能够返回记录Boris Borenovic吗?

因此,在保存记录时,我希望Sql完全保存给出的内容,但是在检索记录时,我希望它能够忽略 特殊字符 。感谢您的所有帮助。


问题答案:

1)确保列的类型为nvarchar而不是varchar(或nchar表示char)

2)N'在包含此类字符串的字符串文字的开头使用,例如N'Boris Borenovi膰'

3)如果您使用的是客户端库(例如ADO.Net),它应该处理Unicode文本,只要再次将参数标记为nvarchar / nchar而不是varchar /
char

4)如果您要查询和忽略重音符号,则可以将COLLATE子句添加到您的选择中。例如:

SELECT * FROM Account 
WHERE Name = 'Boris Borenovic' COLLATE Latin1_General_CI_AI

_CI_AI表示不区分大小写,不区分重音的地方,应返回所有行末尾带有“ c”的所有变体的所有行。

5)如果表中的列是UNIQUE / PK约束的一部分,并且您需要它同时包含“ Boris Borenovi膰”和“ Boris
Borenovic”,则在该列定义中添加COLLATE子句,但这一次使用末尾与“ _AS”进行排序,表示它对重音敏感。



 类似资料:
  • 问题内容: python中有没有一种方法可以获取给定字符的技术信息,例如在Unicode表中显示的那样?(请参阅https://unicode- table.com/en/ ) 示例:对于字母“Ȅ” 名称>带有双坟墓的拉丁大写字母E Unicode编号> U + 0204 HTML代码>Ȅ 团体>拉丁扩展B 小写字母>ȅ 我真正需要的是获取任何Unicode数字(例如U + 0204)对应的名称(

  • 问题内容: 在2010年,您是否会在大型Web门户中提供包含UTF-8字符的URL? 根据URL上的RFC禁止使用Unicode字符。必须对它们进行百分比编码以符合标准。 不过,我的主要观点是提供未编码的字符,其唯一目的是拥有美观的URL,因此百分比编码已被淘汰。 不论RFC怎么说,所有主流浏览器似乎都可以解析这些URL。不过,我的总体印象是,离开网络浏览器领域时,它变得非常不稳定: URL复制并

  • 问题内容: 我使用函数对AJAX发送到PHP的JS对象进行字符串化处理。 当JSON.stringify函数将Unicode字符编码为格式(例如)时,就会出现问题。我的问题是如何在PHP中将这些字符转换为常规unicode字符? 问题答案: 看到输出UTF-16?有点卡住 这将转换为UTF-8:

  • 问题内容: 这个问题看起来很尴尬,但我一直找不到答案。 与下面的C#代码行等效的PHP是什么? 此示例创建一个带有单个Unicode字符的字符串,该字符串的“ Unicode数值”为十六进制的1000(十进制的4096)。 也就是说,在PHP中,如何创建一个具有“ Unicode数值”已知的Unicode字符的字符串? 问题答案: 因为JSON直接支持语法,所以我想到的第一件事是: 另一种选择是使

  • 问题内容: 我正在为我的自定义StringDatatype编写单元测试,并且需要写下4字节的unicode字符。“ \ U”-不起作用(非法转义字符错误),例如:U + 1F701(0xf0 0x9f 0x9c 0x81)。如何将其写成字符串? 问题答案: Unicode代码点不是4个字节。它是整数(目前介于U + 0000到U + 10FFFF之间)。 您的4个字节是(很自然地)其UTF-8编码

  • 问题内容: 在解析包含unicode转义序列的json字符串时,存在一个长期存在的错误。似乎需要修复该错误,这种错误可能很快就不会发生,因此我正在寻找一种在R中创建解决方法的方法,该方法在将序列提供给json解析器之前先取消序列化。 一些上下文:json数据始终是unicode,默认情况下使用,因此通常不需要转义。但是出于历史原因,json确实支持转义的unicode。因此json数据 和 是等效