- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Sql Server 表中有以下两个字段:
当我将一些带有重音字符的测试数据添加到字段中时,它实际上存储了它们!我认为我必须将列从 VARCHAR
更改为 NVARCHAR
以接受重音字符等?
基本上,我认为:
VARCHAR
= ASCIINVARCHAR
= Unicode这就是façade
等的情况are actually ASCII ..而某些其他字符会出错(如果VARCHAR
)?
我可以在扩展 ASCII图表(上面的链接)中看到ç
和é
字符..这是否意味着ASCII包含0 ->127 或 0->255?
(侧面思考:我想我很高兴接受 0->255 并剔除其他任何内容。)
Latin1_General_CI_AS
12.0.5223.6
SQL_Latin1_General_CP1_CI_AS
最佳答案
首先是 Sql Server 正在执行的操作的详细信息。
VARCHAR
使用特定的 collation 存储单字节 字符。 。 ASCII 仅使用 7 位,即一个字节中可能值的一半。排序规则引用特定的代码页(以及排序和等同规则)以使用每个字节中的另一半可能值。这些代码页通常包含对有限特定重音字符集的支持。如果您的数据使用的代码页支持重音字符,您就可以这样做;如果没有,您会看到奇怪的结果(无法打印的“框”或 ? 字符)。您甚至可以输出存储在一种排序规则中的数据,就好像它存储在另一种排序规则中一样,并以这种方式得到非常奇怪的东西(但不要这样做)。
NVARCHAR
是 unicode,但仍然对排序规则有一定的依赖。在大多数情况下,您最终会得到 UTF-16 ,它确实允许使用全部 unicode 字符。某些排序规则将导致 UCS-2,但其限制稍多。请参阅nchar/nvarchar documentation了解更多信息。
作为一个额外的怪癖,即将推出的 Sql Server 2019 will include support for UTF-8使用正确的排序规则时,在 char
和 varchar
类型中。
现在回答问题。
在极少数情况下,您确定您的数据只需要支持源自单一特定(通常是本地)文化的重音字符,并且仅那些特定的重音字符,您可以使用 varchar
类型来获取。
但是做出这个决定时要非常小心。在日益全局化和多元化的世界中,即使是小企业也希望利用互联网来扩大影响力,即使是在自己的社区内,使用不充分的编码很容易导致错误甚至安全漏洞。大多数情况下,看起来 varchar
编码可能足够好,但实际上不再安全了。
就我个人而言,我现在唯一使用 varchar
的地方是从未向最终用户显示或提供的助记符代码字符串;可能是过程代码中的enum
值的东西。即使如此,这往往是遗留代码,并且考虑到我将使用整数值的选项,以实现更快的连接和更有效的内存使用。然而,即将推出的 UTF-8 支持可能会改变这一点。
关于sql-server - 是否应该使用 NVARCHAR 将 'accented characters' 保存到 Sql Server 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57799931/
我想做典型的高亮代码。所以我有类似的东西: $valor = preg_replace("/(".$_REQUEST['txt_search'].")/iu", "\\1", $valor); 现在,
我正在使用 asp.net 4 和 c#。 我有一个字符串可以包含: 特殊字符,例如:!"£$%&/()/# 重音字母,例如:àòèù 空格,例如:“”(1 个连续或多个), 示例字符串: #Hi t
我相信这很简单,但在谷歌上搜索几个小时后我找不到任何答案(也许我无法在搜索中使用正确的词:-P) 我有一个 javascript 方法可以防止用户用数字以外的其他字符填充文本框,如下面的代码所示,它用
要么我的英语不够好,要么就是我听不懂,但是谁能给我解释一下“强调色”是什么以及它在哪里使用? 我的问题源于我找不到关于何时以及如何使用该颜色的真实描述。如果我滚动 further down ,我也会找
我有几个按键(比如 )imap想在我的 .vimrc 中执行一些操作,例如 imap :silent !audtool --playback-seek-relative -3 用于在打字时大胆寻找
我在 MacOSX Lion 上使用 Eclipse Juno,但在输入时遇到问题。 我经常打印一个引号/撇号并移动插入符号。但在这个 Mac 版本的 Eclipse 中,当我输入时,引号会用橙色标记
几天来,我一直在尝试使用 WPF 的 MaterialDesign 在代码隐藏中动态呈现组框。借助我在另一个 StackOverflow 问题中获得的帮助,我能够使用 Material Design
当我在一个文本区域中写单词时,我用acced letters ....应用程序将单词存储在mysql中,但有一些错误例如。如果我在我的 sql 中写 può 我有 può 我该如何解决? 最佳答案
我们的一位客户在报纸上购买了宣传资料并添加到他的 URL 中: http://www.website.com/publicit é 而不是“publicite”(没有重音)... 我试图在 Solar
我有一个java应用程序,它有一个英语和法语的GUI,使用标准的Java国际化服务。我在一台旧机器上用 JBuilder 2005 编写了它,最近升级了,这意味着要更改 IDE。我最终选择了 Inte
我有一个问题,当我保存我的文本字段时,重音符号消失了并且没有保存到 de bd。 示例: 入口:“la meva ocupació és x”bd 保存的内容:“la meva ocupaci” 我想
例子: > SELECT name, culture FROM city_i18n WHERE ID = 2745; +-------+---------+ | name | culture | +
如何将一个字符后跟“组合重音”组合成一个字符? 我将用户输入网页的短语提交给法语-英语词典。有时字典查找会失败,因为大多数重音字符有两种表示形式。例如: é 可以用单个字符完成:\xE9(带尖音符的拉
我正在使用 django haystack 在我的 django 项目中实现一个搜索系统。问题是我的模型中的某些字段有一些法语口音,我想找到包含和不带口音的查询内容的条目。 我认为最好的想法是创建一个
我的应用程序使用标签进行国际化。 在所有页面中,重音字符均显示为 unicode。例如, à ---> \u00E0 我不知道哪个可能是问题所在,而且我找不到有关此主题的任何有用文档:我只找到 htt
我有这个不区分大小写的自定义选择器: jQuery.expr[':'].Contains = function(a,i,m) { var text = jQuery(a).text().toU
在 Microsoft SQL Server 中,可以指定“不区分重音”的排序规则(对于数据库、表或列),这意味着可以进行类似的查询 SELECT * FROM users WHERE name LI
我知道答案很简单,但我要发疯了。我想我已经尝试了所有可用的解决方案。我们开始吧... 我有一个字符集latin1的数据库。是的,我应该以 utf8 格式保存它,但我有几个正在运行的项目,所以我不想弄乱
这个问题已经有答案了: How can I use Unicode-aware regular expressions in JavaScript? (11 个回答) 已关闭 8 年前。 我尝试在 H
我已经使用 Mahapps.Metro 一段时间了,我喜欢它的强调色。但我现在想到一个想法,用户可以选择自己的颜色并将它们添加到 MahApps.Metro.ThemeManager.DefaultA
我是一名优秀的程序员,十分优秀!