问题标签 [collation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - MySQL 排序规则没有像文档中宣传的那样工作
我试图让我的 MySQL 表在这个MySQL 参考页面的示例 2 中表现得像 utf8 表:
根据示例,这应该产生:
但我得到的只是简单的"Bär"
。难道我做错了什么?我应该调整我的设置吗?
我在 Mac OS X 上的 MySQL 5.0.45 和 Red Hat 上的 5.0.51a 上试过这个。
编辑:我试过设置SET NAMES 'utf8'
,但这仍然给出相同的结果。这样做之后,我的变量是
javascript - 有效地替换字符串中的所有重音字符?
对于一个穷人在客户端实现近乎正确排序的排序,我需要一个 JavaScript 函数,它可以在字符串中进行有效的单个字符替换。
这就是我的意思(请注意,这适用于德语文本,其他语言排序不同):
基本上,我需要将给定字符串的所有“ä”替换为“a”(等等)。这样,本机排序的结果将非常接近用户的期望(或数据库返回的结果)。
其他语言可以做到这一点:Python 提供str.translate()
,Perl 中有tr/…/…/
,XPath 有函数translate()
,ColdFusion 有ReplaceList()
。但是 JavaScript 呢?
这是我现在所拥有的。
对于初学者来说,我不喜欢每次调用函数时都会重新构建正则表达式的事实。我想关闭在这方面会有所帮助,但由于某种原因,我似乎没有掌握它的窍门。
有人能想到更有效的方法吗?
下面的答案分为两类:
- 不同程度的完整性和效率的字符串替换函数(我最初问的是什么)
- 迟到了
String#localeCompare
,现在在 JS 引擎中得到了广泛的支持(在提出问题的 时候还没有那么多),并且可以更优雅地解决这类问题。
php - 即使我将字符集和排序规则设置为 utf8_unicode_ci,phpmyadmin 也会将日文字符显示为一堆问号
okee,我按照我可以在这里找到的所有说明进行操作
,我可以在我的页面上显示各种多语言字符...
问题是在 phpmyadmin 中,日文字符被问号替换,就像一堆???? ???
拼凑在一起的那样。我认为我的数据库的排序规则有问题,但我只是想在这里验证一下。
我们之前已经在默认排序规则上设置了这个数据库,latin_swedish_ci
并且它已经有很多数据。现在我们必须添加一些需要支持特殊字符的表,所以我绝对不能将数据库的排序规则设置为utf8
. 我的解决方案是utf8
仅在需要此类支持的表和我们期望包含特殊字符的特定列上使用。
但 phpmyadmin 仍然将它们显示为????
.
我的另一个问题是这些字段可以搜索吗?
我的意思是,如果该字段包含一些日文字符并且我输入sayuri
了关键字,日文字符是否会等同于它们用英语发音的音节?
sql-server-2005 - SQL 存储过程排序规则上下文
嘿,我遇到了一个似乎与整理有关的问题,但我不确定。
我正在针对我的生产数据库的备份进行开发。SQL Server 2005 环境中的唯一区别(我现在知道)是我的本地主机具有“SQL_Latin1_General_CP1_CS_AS”(区分大小写)作为排序规则,而生产环境具有“SQL_Latin1_General_CP1_CI_AS”(不区分大小写)。
当我在本地执行存储过程时,它会抛出“必须声明标量变量“@firstName””错误。
已声明变量“@FirstName” 。
现在,数据库本身是“SQL_Latin1_General_CP1_CI_AS”作为排序规则,那么为什么存储过程不在不区分大小写的上下文中运行呢?
我已经在网上查看了这个,他们基本上说我必须重建我的 SQLserver。
数据库上下文不应该胜过服务器上下文进行排序吗?
顺便说一句,master 和 tempdb 都是“SQL_Latin1_General_CP1_CS_AS”区分大小写的。
php - 用于 MySQL 和 PHP 的最佳排序规则是什么?
我想知道对于一个您不能 100% 确定将输入什么内容的一般网站,在 MySQL 中是否有“最佳”排序选择?我知道所有的编码都应该是相同的,例如 MySQL、Apache、HTML 和 PHP 中的任何东西。
过去我已将 PHP 设置为以“UTF-8”输出,但是这在 MySQL 中与哪个排序规则匹配?我认为它是 UTF-8 之一,但我使用过utf8_unicode_ci
, utf8_general_ci
, 和utf8_bin
之前。
php - 以与 MySQL 相同的方式比较 PHP 中的字符串
我将 varchar 存储在 utf8 MySQL 表中并使用 utf8_general_ci 排序规则。我在 varchar 上有一个唯一索引。我想在 PHP 中做一个字符串比较,这相当于 MySQL 对索引所做的事情。
一个具体的例子是,我希望能够在这种情况发生之前检测到“a”被认为等同于 PHP 中的“À”:
java - 使用 DCM4CHEE 实现 MySQL 国际化
我正在尝试使用 MySQL 国际化 dcm4chee(一个基于 Java 的开源医学影像存储系统),并且有很多问题。
这是我到目前为止所知道的 1. 我需要在 MySQL 中将字符集从 latin1 更改为 utf8 (以支持所有国际字符) 2. 我很确定我想将排序规则设置为 utf8_unicode_ci
以下是我需要知道的 1. 我应该如何/何时做这些事情?一个。可以对现有表进行这些更改吗?湾。如果是这样,我该怎么做?C。在数据库的整个生命周期中,这些更改是否只需要进行一次?d。所做的更改会仅影响未来的条目还是所有条目?2. 如何更改 dcm4chee 未来安装的默认值以使用 utf8?3. 从我的研究看来,改变字符集和排序规则以使用足够宽的字符集 (utf8) 是我需要做的所有事情来国际化 MySQL。这是真的?如果没有,我还需要做什么?
谢谢,对此的任何帮助将不胜感激
sql-server - sqlserver 排序规则是否意味着列名必须是正确的大小写?以及如何处理
在 SQL Server(2000 或 2005)中,是否可以设置数据库或服务器排序规则,以便标识符名称(表、列等)需要使用正确的大小写?如果是这样,所有区分大小写的排序规则都是如此,还是单独设置?(我一直认为区分大小写适用于数据,而不是对象名称)。
如果应用程序存储的过程和查询不是以一致的大小写编写的,大概这会破坏应用程序?有没有办法处理这个问题而不必确保所有查询都使用正确的大小写,例如设置数据库连接的排序规则?
我从现有应用程序的角度来看待这个问题,该应用程序中可能包含不一致的大小写 sql 代码,并且我希望能够针对具有不同排序规则的数据库运行它。我需要哪些设置或哪些数据库/服务器排序规则不能与应用程序一起使用?
sql-server - Sql Server 2008 - 排序规则类型之间的区别
我正在安装一个新的 SQL Server 2008 服务器,并且在获取有关不同排序规则的任何可用信息时遇到了一些问题。我搜索了 SQL Server BOL 并用谷歌搜索了答案,但似乎无法找到任何可用的信息。
"Finnish_Swedish_100"
Windows 排序规则和有什么区别"Finnish_Swedish"
?我想
"_100"
-version 是 SQL Server 2008 中的更新排序规则,但如果是这种情况,与旧版本相比发生了什么变化?"Accent-sensitive"
启用通常是一件好事吗?我知道这取决于任务和所有这些,但是有什么众所周知的利弊需要考虑吗?和参数
"Binary"
,"Binary-code point"
在什么情况下应该启用这些?
sql-server-2005 - SQL Server 表中的日文/中文语言数据
所以我遇到了一个有趣的问题,我需要帮助的速度比我使用 SQL Server 的技能要快得多。
我们有一个包含一堆文本的表格,所有这些文本都使用不同的语言。大多数这些数据在浏览器中正确显示,但是,中文或日文的任何内容都会被浏览器完全破坏。
这是一个 ASP.old 应用程序,我们用来显示来自运行 MS SQL Server 2005 的服务器的数据。
以前,我们也遇到过同样的问题,我们通过更改 ASP 页面中的编码解决了这个问题。自从我们这样做以来,这些文件没有改变,但问题又出现了。因此,我必须得出结论,问题在于数据库,因为这是我们上次修复它以来唯一更新的东西。
到目前为止,我一直在尝试研究排序规则,但我离 SQL 专家还很远,所以这很困难。
如果需要,我可以提供更多信息,任何可以帮助我找到答案的信息,除了 URL(机密性和所有)。
如果有人有任何想法,我将不胜感激。
附加信息:
-列类型是'ntext'