相关疑难解决方法(0)

JavaScript中的程序口音减少(又称文本规范化或不合理)

我需要将2个字符串比较为相等,如下所示:

吕贝克==吕贝克

在JavaScript中.

为什么?好吧,我有一个自动完成字段,使用Lucene进行Java服务,其中地名自然存储(如Lübeck),但也被索引为规范化文本,

import sun.text.Normalizer;
oDoc.setNameLC = Normalizer.normalize(oLocName, Normalizer.DECOMP, 0)
    .toLowerCase().replaceAll("[^\\p{ASCII}]","");
Run Code Online (Sandbox Code Playgroud)

这样一来,一个不知道输入"Mèxico"的人可以输入"墨西哥"并得到一个返回"Mèxico"的比赛(在很多其他可能的点击中,如"CaféMèxico,Dubai,UAE").

现在问题是我没有能力更改服务以在服务器端进行任何突出显示,因此我在客户端JavaScript方面突出显示如下内容:

return result.replace( input.replace(/[aeiou]/g,"."), "<b>$1</b>");
Run Code Online (Sandbox Code Playgroud)

这有点花哨,因为我在输入中转义了特殊的正则表达式字符.这对于点击开头的简单单词匹配很好,但是如果你突然希望支持像"london cafe"这样的多字匹配,它真的会崩溃:

input = input.strip().toLowerCase(); //fyi prototype's strip is like trim
re = new RegEx(input.replace(/[aeiou]/g,".").replace(/\s+/g,"|"),"gi");
return result.replace(re, "<b>$1</b>");
Run Code Online (Sandbox Code Playgroud)

这不适用于说"伦敦ca"(正在输入伦敦咖啡馆),因为它会将"Jack London Cabin,Dawson City,Canada"标记为:"Ja<b>ck</b> <b>London</b> <b>ca</b>bin, Dawson <b>Ci</b>ty, <b>Ca<b/>nada"[注意"ck"和"Ci"特别]

因此,我有点像寻找一些不那么疯狂的东西:

input = input.strip().toLowerCase();
input = input.replace(/a/g,"[ÀàÁáÂâÃãÄäÅ寿??????]");
input = input.replace(/e/g,"[ÈèÉéÊêËë??????????]");
// ditto for i, o, u, y, c, n, maybe also d, g, h, j, k, l, r, s, t, w, z 
re …
Run Code Online (Sandbox Code Playgroud)

javascript unicode normalization accent-insensitive text-normalization

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

PostgreSQL:不区分大小写的字符串比较

PostgreSQL有一个简单的忽略大小写比较吗?

我想替换:

SELECT id, user_name 
    FROM users 
        WHERE lower(email) IN (lower('adamB@a.com'), lower('eveA@b.com'));
Run Code Online (Sandbox Code Playgroud)

有类似的东西:

SELECT id, user_name 
    FROM users 
        WHERE email IGNORE_CASE_IN ('adamB@a.com', 'eveA@b.com');
Run Code Online (Sandbox Code Playgroud)

likeilike单值(例如运营商的工作like 'adamB@a.com'),但不是套.

sql postgresql case-insensitive string-comparison

42
推荐指数
5
解决办法
8万
查看次数

如何在Java中将UTF-8转换为US-Ascii

我们有一个系统,客户,主要是欧洲输入文本(UTF-8),必须分发到不同的系统,大多数接受UTF-8,但现在我们还必须将文本分发给只接受美国的美国系统. -Ascii 7位

所以现在我们需要将所有欧洲字符翻译成最近的US-Ascii.是否有任何Java库可以帮助完成此任务?

现在我们刚刚开始添加到翻译表,其中Å(瑞典AA) - > A等等,如果我们找不到输入字符的任何匹配项,我们将记录并替换为问号并试着为下一个版本修复它,但它似乎非常低效,而其他人必须先做过类似的事情.

java ascii utf-8

27
推荐指数
4
解决办法
5万
查看次数

如何删除MySQL中的重音?

我刚刚编制了一个包含100万个地名的数据库.我将在一个自动完成的小部件中使用它来查找城市.很多这些地方都有重音......当用户输入没有重音的名字时,我希望能够找到记录.

为了做到这一点,我得到了第二列,其中包含名称的非重音副本.其中许多记录仍然是空白的,所以我想编写一个查询来填充它们.这是否可以直接在MySQL中进行?如果是这样,怎么样?

mysql utf-8 diacritics

23
推荐指数
4
解决办法
5万
查看次数

从字符串中删除重音符号/变音符号,同时保留其他特殊字符(尝试过mb_chars.normalize和iconv)

有一个非常类似的问题.其中一个解决方案使用如下代码:

string.mb_chars.normalize(:kd).gsub(/[^x00-\x7F]/n, '').to_s
Run Code Online (Sandbox Code Playgroud)

这会产生奇迹,直到你注意到它还会移除空格,圆点,破折号以及谁知道还有什么.

我不是很确定第一个代码是如何工作的,但它是否可以剥离重音符号?或至少给出一个保留的字符列表?我对regexps的了解很少,但我尝试过(无济于事):

/[^\-x00-\x7F]/n # So it would leave the dash alone
Run Code Online (Sandbox Code Playgroud)

我要做这样的事情:

string.mb_chars.normalize(:kd).gsub('-', '__DASH__').gsub
  (/[^x00-\x7F]/n, '').gsub('__DASH__', '-').to_s
Run Code Online (Sandbox Code Playgroud)

残暴?是...

我也尝试过:

iconv = Iconv.new('UTF-8', 'US-ASCII//TRANSLIT') # Also tried ISO-8859-1
iconv.iconv 'Café' # Throws an error: Iconv::IllegalSequence: "é"
Run Code Online (Sandbox Code Playgroud)

请帮忙?

ruby string ruby-on-rails diacritics

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

红宝石中的音译

在ruby中音译非英语字符的最简单方法是什么.那是转换,例如:

translit "Gévry"
#=> "Gevry"

ruby transliteration

10
推荐指数
2
解决办法
4719
查看次数

将umlaute(äüö)替换为rails中的SEO链接 - 最好的方法

我正在使用permalink_fu插件来创建标题的永久链接.我的问题是:如果标题包含德语字符,它们只是替换为'_'.

我需要的是用oeö与ae取代ä的东西

我知道String.tr但这里的问题是它用1个替换替换1个字符,所以它可以用于替换

é与eøwitho

等等

有没有人有一个漂亮而干净的解决方案呢?

谢谢

ruby string seo replace ruby-on-rails

5
推荐指数
4
解决办法
6389
查看次数

在Java中将ANSI字符转换为UTF-8

有没有办法使用Java将ANSI字符串转换为UTF.

我有一个自定义序列化程序,它使用DataInputStream类的readUTF和writeUTF方法来反序列化和序列化字符串.如果我收到一个用ANSI编码的字符串太长,大约100000个字符我得到错误;

引起:java.io.UTFDataFormatException:编码的字符串太长:106958字节

然而,在我的Junit测试中,我能够创建一个120000'a的字符串,它完美无缺

我检查过以下帖子但仍有错误;

java ansi utf-8 character-encoding

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

字母替换的更好选择

还有更好的选择吗?

name.gsub('è','e').gsub('à','a').gsub('ò','o').gsub('ì','i').gsub('ù','u')
Run Code Online (Sandbox Code Playgroud)

谢谢

ruby ruby-on-rails

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

如何删除重音符号等拉丁字符?

我需要删除重音符号或"ñ"Ruby 中的拉丁字符。我尝试使用,force_encoding('UTF-8')但是没有用。

ruby ruby-on-rails

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

替换字符但保留案例

def replace_characters(name)
    name.downcase.tr('àáäâãèéë?êìíïî?òóöôõùúüû?ñç ', 'aaaaaeeeeeiiiiiooooouuuuunc-')
end
Run Code Online (Sandbox Code Playgroud)

我想替换正常字符的特殊字符但保留大小写.

示例及其预期产出:

  • íhávéspécialchárs.jpg// ihavespecialchars.jpg
  • ÍHÁVÉSPÉCIALCHÁRS.JPG// IHAVESPECIALCHARS.JPG
  • /IMG_4834.JPG // /IMG_4834.JPG

目前,它正在替换正常,但始终将字符串更改为小写.例如:/IMG_4834.JPG - > /img_4834.jpg

ruby translate

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