标签: collation

如何找出SQL 2000/2005中可用的排序规则

如果我需要选择要使用的校对模式,我如何知道可用的校对?

sql collation

2
推荐指数
1
解决办法
1555
查看次数

重音不敏感的子串匹配

我有一个搜索功能,从InnoDB表(utf8_spanish_ci排序规则)获取数据并将其显示在HTML文档(UTF-8charset)中.用户键入子字符串并获取突出显示第一个子字符串出现的匹配列表,例如:

Matches for "AL":

Álava
<strong>Al</strong>bacete
<strong>Al</strong>mería
Ciudad Re<strong>al</strong>
Málaga
Run Code Online (Sandbox Code Playgroud)

从示例中可以看出,搜索忽略了大小写和重音差异(MySQL会自动处理它).但是,我用于高亮匹配的代码无法执行后者:

<?php

private static function highlightTerm($full_string, $match){
    $start = mb_stripos($full_string, $match);
    $length = mb_strlen($match);

    return
        htmlspecialchars( mb_substr($full_string, 0, $start)) .
        '<strong>' . htmlspecialchars( mb_substr($full_string, $start, $length) ) . '</strong>' .
        htmlspecialchars( mb_substr($full_string, $start+$length) );
}

?>
Run Code Online (Sandbox Code Playgroud)

是否有一种明智的方法来解决这个并不意味着对所有可能的变化进行硬编码?

更新:系统规格是PHP/5.2.14和MySQL/5.1.48

php collation utf-8

2
推荐指数
1
解决办法
3218
查看次数

SQL Server 2008数据库归类转换

我想配置具有" Latin1_General_CP1_CI_AS " 的确切需求排序规则的数据库,但由于某种原因在SQL Server 2008中,我只能选择" SQL_Latin1_General_CP1_CI_AS "?

如何选择正确的排序规则并将其从SQL_Latin1_General_CP1_CI_AS更改为Latin1_General_CP1_CI_AS

同时保留所有数据和设置(架构和登录等)? 替代文字

谢谢.

sql-server collation

2
推荐指数
1
解决办法
7498
查看次数

更改列整理 - 是否安全?

我的票务系统中有一张表,有15,000条记录,每条记录都包含一封电子邮件,该电子邮件已转换为要添加到故障单的邮件.

我们当前的问题是整理 - 当我得到系统时,它使用latin1_swedish_ci.但是,我们在系统中使用了几种欧洲语言,因此我们需要能够正确存储非ASCII字符.

我无法使用latin1_swedish_ci排序规则,但我在系统的测试版本上发现将排序规则切换为utf8_bin可以解决问题.

因此,我需要知道在实时系统上对我的表/列进行此更改是否安全.这会花费很长时间(当你试图让它真的很难工作时,PHPMyAdmin非常可怕)还是会破坏任何现有数据?

mysql php4 collation phpmyadmin

2
推荐指数
1
解决办法
1521
查看次数

是否有Delphi的Unicode校对算法(UCA)代码?

根据Unicode技术标准#10(UCA)进行整理,这是与Unicode兼容的一个单独的东西,如果你想知道这一点,不仅意味着排序/排序,还要比较,"字符串1等于字符串2的问题".有时,两个字符串中不相同值的代码点在整理和比较方面被认为是相同的,至少这是从Perl标准库的角度讨论的博客文章所暗示的.

我想知道的是,(a)Delphi XE2是否已经完全实现了整个Unicode排序规范,(b)如果没有,第三方库是否会这样做?

示例代码:

Str1 := Chr($212B);
Str2 := Chr($C5);
n := CompareStr(Str1,Str2); // in delphi this is not zero, under UCA rules, should be 0.
Run Code Online (Sandbox Code Playgroud)

根据Unicode归类规范,Unicode归类应该在比较时考虑所有上述等效的代码点.从二进制的角度来看,这没有任何意义,所以我很高兴Delphi中的CompareStr和perl中的cmp(来自链接的文章)都被Unicode故障污染了,但是如果你想做一个符合unicode的条件怎么办? Delphi中的整理,就像perl Unicode :: Collat​​ion库一样?怎么样?

更新 AnsiCompareStr将调用Win32 CompareString,并将处理一些特定于语言环境的情况,如上所述,并通过在互联网上阅读,经典的Windows unicode整理行为和UCA正在缓慢但不完全融合,UCA似乎是变得更改的一个它更像是Windows排序规则.

delphi unicode collation delphi-xe2 uca

2
推荐指数
1
解决办法
705
查看次数

PHP/MySQL编码问题. 而不是某些字符

当使用php将某些字符输入我的mysql数据库时,我遇到了一些问题.我正在做的是将用户输入的文本提交到数据库.我无法弄清楚我需要改变什么以允许将任何类型的字符放入数据库并通过php打印出来,因为它是假设的.

我的MySQL排序规则是:latin1_swedish_ci

就在我从表单发送文本到数据库之前,我在数据上使用了mysql_real_escape_string().

以下示例

本文:

â??People are just as happy as they make up their minds to be.â??
â?? Abraham Lincoln 
Run Code Online (Sandbox Code Playgroud)

假设看起来像这样:

“People are just as happy as they make up their minds to be.”
? Abraham Lincoln
Run Code Online (Sandbox Code Playgroud)

php mysql collation utf-8 character-encoding

2
推荐指数
1
解决办法
1万
查看次数

在mysql数据库中存储瑞典字符

我在MySQL数据库中存储瑞典字符时遇到问题.我想将它们存储在我的表中,users并使用collat​​ion utf8-bin进行调用.即使我使用utf8,字符也会å ä ö被存储为Ã¥ ä ö,我不知道为什么.检索数据并回显它会给我相同的输出,而不是奇怪的字符å ä ö.任何帮助表示赞赏.

mysql collation utf-8

2
推荐指数
1
解决办法
5826
查看次数

是否可以删除mysql表排序规则?

在我的mysql设置中,表及其列会自动获得utf8_unicode_ci排序规则。但是,有一张表我不需要排序规则。

您如何设置?另外,是否可以从表中删除排序规则?

干杯

mysql collation

2
推荐指数
1
解决办法
3793
查看次数

像í无法从MySQL正确显示的字符

在两台计算机的HTML文件中显示数据库结果时出现问题.

因此,在一台计算机上显示如下名称:

SAUL FRANCISCO GARCÃA RODRÃGUEZ
Run Code Online (Sandbox Code Playgroud)

数据库latin1_swedish_ci的排序规则和表的排序规则是utf8_general_ci.

在另一台计算机中它显示如下(我希望它是这样的):

SAUL FRANCISCO GARCÍA RODRÍGUEZ
Run Code Online (Sandbox Code Playgroud)

名称列在<select>标签中两个浏览器的语言是英语,两个环境中的Html文件是相同的,所以我认为它与php.ini文件的charset或编码有关

我试过更改值php.ini但没有任何变化,我无法在任何地方找到答案.

唯一的区别是结果显示在我想要的地方我安装了WAMP,在另一台计算机上我分别安装了Apache,MySQL和PHP.

对不起,如果细节不是很有用,但我不知道我哪里出错了.

PS在两个数据库上,数据从MySQL控制台看起来像这样:

SAUL FRANCISCO GARCÃA RODRÃGUEZ
Run Code Online (Sandbox Code Playgroud)

php mysql apache collation character-encoding

2
推荐指数
1
解决办法
1272
查看次数

PHP致命错误:尽管PHP 5.3.24,但找不到类'Collat​​or'

我的输出在下面的代码之后是:" PHP Fatal error: Class 'Collator' not found".

我在php手册中读过COLLATOR class,PHP版本需要PHP 5> = 5.3.0.我的PHP版本是5.3.24.

在我phpinfo()搜索'coll'字符串但没有找到任何内容.

另请注意,我的网站lang是土耳其语,我正在使用 UTF-8

那么我的致命错误输出的原因是什么?谢谢.

/* fetch values */
$etiket_bulutu = '';
while ($beyan->fetch()) 
{
    $etiket_bulutu .=  $tags.', ';
}

$etiket_bulutu = substr_replace($etiket_bulutu ,'',-2); //omit last {, } chars

$etiketler = explode(", ", $etiket_bulutu); //get each tag as arr

$etiketler = array_unique($etiketler);
$etiketler = array_values($etiketler); //only unique tags without NULLs

$etadet = count($etiketler);

$coll = collator_create('tr_TR'); //from http://www.php.net/manual/en/collator.sort.php
collator_sort($coll, $etiketler);

for($x=0;$x<$etadet;$x++) …
Run Code Online (Sandbox Code Playgroud)

php arrays collation utf-8 alphabetical-sort

2
推荐指数
1
解决办法
3623
查看次数