回答

收藏

可以使用法国和西班牙的特殊字符varchar中保存吗?

技术问答 技术问答 269 人阅读 | 0 人回复 | 2023-09-14

法语和西班牙语有特殊字符,而普通英语(带重音的元音等。)不使用特殊字符。+ H' a& S1 j/ C. E
varchar支持这些字符吗?还是我需要一个?nvarchar?
; r  {+ u. I+ b0 V9 _(注:我     我希望我应该用它吗?nvarchar或varchar的讨论。)
& o0 c. \6 V5 u# I/ Y# [. Z                                                               
( W+ Y' v0 z0 O% w4 D    解决方案:                                                               
" W. V) S$ `9 ~& ^6 G' I                                                                您在说什么SQL实现?
2 ?3 j. t1 `) c5 m" H& l7 A我可以说说Microsoft Sql Server。其他SQL实现的不多。
; H% _" s% T2 i- e# M, w0 A' E+ r" Q对于Microsoft SQL
$ O9 F( s( ?& o( K) T7 ZServer,默认排序规则为SQL_Latin1_General_CP1_CI_AS(拉丁1常规,保留大小写,不区分大小写,区分重音)。它允许+ G3 a" B9 `6 i% p" O/ j7 v
大多数    西欧语言以单字节的形式(varchar)而不是双字节形式(nvarchar)来回表示。
9 Y$ z9 v$ s+ z# I  O* G6 B它以 为基础Windows2 q: t: E5 f! O9 T
1252代码页面。代码页面实际上是ISO-8859-1、代码点范围0x80’-0x9F由另一组字形表示,包括0x欧元符号80处。ISO-8859-1将代码点范围指定为无图形表示的控制字符。
7 |# m1 }9 C6 G1 q: zISO-8859-1由Unicodes 基本多语言平面
" `, V- y( |" y- }- z3 w' W由前256个字符组成,覆盖8位字符(0x00’‘-0xFF)的整个域。
) E2 ^3 f8 q1 L3 `西欧语言在这个顺序上会遇到困难,包括拉脱维亚语、立陶宛语、波利奇语、捷克语和斯洛伐克语。如果需要支持这些功能,或者使用其他排名规则(SQL& }2 |5 R1 I# v+ K3 R8 x4 u2 n$ ^
Server提供了很多排序规则),要么转向使用nvarchar。4 D  [( A( r2 T' @
需要注意的是,在数据库中混合排序规则往往会导致问题。必要时应偏离默认排序规则,并知道如何使用默认排序规则。
* ?' m$ @1 `5 B9 g9 h我怀疑Oracle和DB提供类似的支持。我不明白MySQL或其他实现。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则