问题标签 [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.

0 投票
4 回答
36653 浏览

mysql - MySQL非法混合排序规则(utf8_unicode_ci,IMPLICIT)和(utf8_general_ci,IMPLICIT)用于操作'='

我需要您的帮助来确定为什么会出现此错误

该程序直到昨天都运行良好,今天它开始给出非法混合排序规则的错误。我检查了数据库的每一个表,所有表及其列都在一个字符集和排序规则中,即:-utf8 utf8_unicode_ci。

我创建了另一个具有相同结构的架构并尝试执行相同的查询,它工作正常,但不适用于其原始架构。

任何人都可以对此提供任何意见吗?为什么会这样?

0 投票
2 回答
1297 浏览

php - 如何在 PHP 中实现类似 MySQL 的 latin1_general_ci 排序规则?

我正在编写一个字符串比较函数来对医学术语进行排序,这些术语通常包含来自许多不同欧洲语言的特殊重音字符,我需要以某种方式实现类似于 MySQL 的排序规则latin1_general_ci

首先,我正在对字符串进行一些基本的修改以删除空格、引号、连字符、括号等。当我将字符串传递给strcoll()使用默认语言环境时,问题就出现了,因为它不够聪明,无法考虑,例如, 一个重音的 e 在字典上等同于一个正常的 e。

我对使用德语或法语等语言环境持谨慎态度,因为它可能不会包含我需要考虑的所有特殊字符。是否有一个语言环境可以给我类似于latin1_general_ci排序规则的东西?或者是否有其他解决方案?

我天真的解决方案是创建一个大的关联数组来将重音字母映射到它们的常规字母等价物,然后将它与 一起使用str_replace(),但这听起来很慢而且很乏味(而且容易出错)。如果可能的话,我宁愿使用语言内置的东西。

同样在这一点上,是否strcmp()strcasecmp()尊重当前语言环境的排序规则,或者只是strcoll()这样做?

0 投票
15 回答
728037 浏览

sql - 如何查看 MySQL 数据库/表/列的字符集是什么?

什么是(默认)字符集:

  • MySQL数据库

  • MySQL 表

  • MySQL 专栏

0 投票
11 回答
45339 浏览

python - 如何在 Python 中按字母顺序对 unicode 字符串进行排序?

Python 默认按字节值排序,这意味着 é 在 z 和其他同样有趣的东西之后。在 Python 中按字母顺序排序的最佳方法是什么?

有这方面的图书馆吗?我什么也找不到。最好排序应该有语言支持,所以它理解 åäö 应该在瑞典语中的 z 之后排序,但 ü 应该按 u 排序,等等。因此,Unicode 支持几乎是一个要求。

如果没有库,那么最好的方法是什么?只需将字母映射到整数值并将字符串映射到整数列表?

0 投票
1 回答
8992 浏览

sql-server - 更改 SQL Server 2008 实例的默认排序规则

当我尝试使用此命令行更改 SQL Server 实例的默认排序规则时:

我收到以下消息:

Microsoft (R) SQL Server 2008 安装程序 10.00.1600.22 版权所有 (c) Microsoft Corporation。版权所有。

发生以下错误:

无法识别指定的设置“SQLCOLLECTION”。

错误结果:-2068578301 结果设施代码:1204 结果错误代码:3

请查看 summary.txt 日志以获取更多详细信息

有什么我想念的吗?我需要为 setup.exe 做一些特殊的事情来找到SQL_Latin1_General_CP1_CI_AS排序规则吗?

谢谢。

0 投票
1 回答
1174 浏览

sql-server - SQL Server 2005:需要有关在一个表列中处理多语言数据的建议

我正在运行 SQL Server 2005 和 .Net 2.0。我有一些表需要在同一列中以多种语言存储数据。例如,带有 ArticleID(身份)和 ArticleName (nvarchar 100) 的 Article 表。 ArticleName 中的数据可能采用各种语言。

我的数据库使用 SQL_Latin1_General_CP1_CI_AS 的默认排序规则,因为我们的大部分数据都是英文的。

我的应用程序中的每个用户都可以选择他/她的首选文化。在用户界面中,文章数据显示在数据网格中,用户可以按 ArticleName 对它们进行排序。

现在,由于我的数据库整理,排序顺序不正确。我正在考虑通过使用 ORDER BY ... COLLATE 子句来解决这个问题。但是如何将正确的用户文化映射到 SQL Server 排序规则?我是否必须像这样指定每种文化 - 例如。如果culture = zh-CN(中国PRC),则使用排序规则Chinese_PRC_CI_AS 等等...

有没有更好的方法来获取排序规则?我的方法正确吗?或者有没有更好的方法来处理这个?(我确实想过在 .Net 中实际执行排序,但这似乎是在浪费 CPU 时间。)感谢阅读。

0 投票
2 回答
2388 浏览

sql-server - 如果 sql server 的服务器排序规则区分大小写而数据库不区分大小写,那么查询是否区分大小写?

如果 sql server 的服务器排序规则区分大小写而数据库不区分大小写,那么查询是否区分大小写?我认为它应该基于数据库而不是服务器排序规则,但是做了一个简短的测试似乎并非如此。有谁肯定知道吗?

0 投票
2 回答
753 浏览

asp.net - SQL Server 排序规则,Management Studio 结果与 asp.net 结果不同

我正在使用带有用户名列和排序规则 SQL_Latin1_General_CP1_CI_AS 的表

现在查询:

select 1 where exists(select 1 FROM USER_TABLE WITH(NOLOCK) WHERE user_name='sueßemaus')

在 asp.net 结果中:1 在 SQL Management Studio 结果中:[无]

与排序规则相比,有一条名为“süßemaus”的记录正确的结果是 [nothing] 但为什么 asp.net 会忽略排序规则?

0 投票
5 回答
11583 浏览

sorting - Unix下划线字符的排序处理

我有两台 linux 机器,其中 unix 排序似乎表现不同。我相信我已经将其范围缩小到下划线字符的处理。

如果我运行sort tmp,其中 tmp 包含以下两行:

一台机器输出

(即“_”在“h”之前)而其他输出

(即“h”在“_”之前)。我需要这些机器一起运行(因为我稍后使用 sort -m 来合并非常大的文件)。

有什么方法可以强制排序以一种或另一种方式表现吗?

谢谢。

0 投票
1 回答
1682 浏览

sql-server-2005 - 创建重复数据库 - 不同的排序规则

我的主要问题是如何将具有英语归类的整个数据库复制到具有希腊归类的数据库?源数据库包含所有表和相关数据。我有一个干净的希腊排序数据库。我想将所有内容从源复制到目标。

我在知识库文章中找到的一种解决方案包括以下步骤:

  • 为源数据库中的所有对象(不包括索引、触发器、主键、外键、默认设置和约束)生成脚本。在这里,Script collation设置被设置为False,所以脚本是在没有collate关键字的情况下创建的。
  • 在目标数据库上运行步骤 1 中的脚本以使用目标数据库排序规则创建对象。
  • 使用 DTS 从源数据库传输数据。这就是我现在卡住的地方。

我使用Export Data...SQL Server 2005 的向导将数据从源数据库导出到目标数据库。我的数据库中有大约 1500 个表,所以我Optimize of many tables在向导步骤中勾选了复选框。除此之外,所有设置都是默认的。

执行导出时出现错误(包含报告的文本文件) 。

SSIS 错误
(来源:googlepages.com

为了继续前进,要么我需要解决这个错误,要么需要一种新的方法来使用不同的排序规则从源数据库复制到目标数据库。

编辑 1

我忘了提到我已经尝试过使用 SQL 比较。很长时间以来,我一直在使用该工具。但在这种情况下它不会有一点帮助。我Latin1_General_CS_AS在源数据库中有带有排序规则的表,但我不想使用该排序规则创建表。我知道有一个选项Ignore Collation。但是,列名还有另一个问题——一些列名很奇怪,SQL Compare 在格式化列名时引入了额外的[]字符,这会破坏整个同步脚本!