相关疑难解决方法(0)

将符号,重音符号转换为英文字母

问题是,如你所知,Unicode图表中有数千个字符,我想将所有相似的字符转换为英文字母中的字母.

例如,这里有一些转换:

?->H
?->V
?->Y
?->O
?->C
t?? ?????y --> the Family
...
Run Code Online (Sandbox Code Playgroud)

我看到有超过20个版本的字母A/a.而且我不知道如何对它们进行分类.它们看起来像大海捞针.

完整的unicode字符列表位于http://www.ssec.wisc.edu/~tomw/java/unicode.htmlhttp://unicode.org/charts/charindex.html.只需向下滚动即可看到字母的变化.

如何用Java转换所有这些?请帮我 :(

java unicode diacritics special-characters

126
推荐指数
8
解决办法
12万
查看次数

Android,Diacritic Insensitive SQLite Search

我正在尝试查询android中的SQLite数据库,其中带有重音符号的法语字符应该像普通的拉丁字符一样处理,例如:

SELECT * FROM x WHERE y LIKE %cafe%
Run Code Online (Sandbox Code Playgroud)

应该回来

café, câfè, ...
Run Code Online (Sandbox Code Playgroud)

我已经用Google搜索了一整天,并阅读了有关stackoverflow上的所有帖子.向表中添加包含规范化标题的列的可能性是没有选择的,因为数据库是从服务器获取并由第三方维护的.

使用其他帖子中提到的排序规则

Latin1_general_CI_AI
Run Code Online (Sandbox Code Playgroud)

也没有选择,因为SQLite只支持3个(在android 5中)排序规则,这对我没用.

将android中的数据库设置为

Locale.FRENCH
Run Code Online (Sandbox Code Playgroud)

并使用整理

COLLATE LOCALIZED
Run Code Online (Sandbox Code Playgroud)

也没有做到这一点.

我知道iOS(DiacriticInsensitiveSearch)中有一些标志可以自动完成,所以我希望这样的东西也适用于Android.

有任何想法吗?提前致谢!

database sqlite android collation

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

如何在SQLite查询中忽略重音(Android)

我是Android的新手,我正在使用SQLite进行查询.我的问题是,当我在字符串中使用重音时,例如

  • AAA
  • AAA
  • AAA
  • AAA
  • AAA
  • AAA

如果我做:

SELECT * FROM TB_MOVIE WHERE MOVIE_NAME LIKE '%a%' ORDER BY MOVIE_NAME;
Run Code Online (Sandbox Code Playgroud)

回归:

  • AAA
  • aaa(它忽略了其他人)

但如果我这样做:

SELECT * FROM TB_MOVIE WHERE MOVIE_NAME LIKE '%à%' ORDER BY MOVIE_NAME;
Run Code Online (Sandbox Code Playgroud)

回归:

  • ààà(忽略标题"ÀÀÀ")

我想在SQLite数据库中选择字符串而不关心重音和大小写.请帮忙.

sqlite android diacritics

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

比较具有特殊字符的单词时忽略变音字符(é,è,...)

我列出了一些比利时城市的变音字符:(Liège,Quiévrain,Franière等)我希望将这些特殊字符转换为与包含相同名称的大写字母进行比较,但没有变音符号( LIEGE,QUIEVRAIN,FRANIERE)

我首先尝试做的是使用大写:

LIEGE.contentEqual(Liège.toUpperCase())但这不合适,因为大写LiègeLIÈGE和不是LIEGE.

我有一些复杂的想法,比如替换每个角色,但这听起来很愚蠢而且过程很长.

关于如何以聪明的方式做到这一点的任何想法?

java string android replace diacritics

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

SQLite中的土耳其字符在使用LIKE表达式时

select *from urunler where musteri like %ir%;
Run Code Online (Sandbox Code Playgroud)

测试数据:

+---musteri---+---ID--+
+-------------+-------+ 
+---?rem------+---1---+ 
+---Kadir-----+---2---+ 
+---Demir-----+---3---+ 
Run Code Online (Sandbox Code Playgroud)

返回结果:

Kadir
Demir 
Run Code Online (Sandbox Code Playgroud)

如果使用%?r%然后İrem返回,但卡迪尔和Demir没有回来.其他土耳其人的角色也有同样的问题,但没有任何确切的解决方案.我正在编程单声道android.


    [SQLiteFunction(Name = "TOUPPER", Arguments = 1, FuncType = FunctionType.Scalar)]
    public class TOUPPER: SQLiteFunction
    {
        public override object Invoke(object[] args)
        {
            return args[0].ToString().ToUpper();
        }
    }       

    [SQLiteFunction(Name = "COLLATION_CASE_INSENSITIVE", FuncType = FunctionType.Collation)]
    class CollationCaseInsensitive : SQLiteFunction {
        public override int Compare(string param1, string param2) {
            return String.Compare(param1, param2, true);
        }
    }       

TOUPPER.RegisterFunction(typeof(TOUPPER));
Run Code Online (Sandbox Code Playgroud)

用这种方式解决了,还单声道c#'使用了库,这里是我需要做的Android.Database.Sqlite.SQLiteDatabase

c# java sqlite android

6
推荐指数
2
解决办法
2177
查看次数

在sqlite中重音搜索(android)

我有一个列,其中一些元素包含重音字母.例如:Grambú

我的要求是,当我搜索"Grambu"时,我也应该在结果中获得"Grambú".

对于此要求,我尝试对该特定列使用"COLLATE NOCASE"参数.但那没有用.

当我在网上搜索解决方案时,我发现很多人建议对重音字符进行规范化,并根据它创建另一个列作为唯一选项.

这个问题还有其他更简单的解决方案吗?

sqlite android android-sqlite

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