问题是,如你所知,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.html 或http://unicode.org/charts/charindex.html.只需向下滚动即可看到字母的变化.
如何用Java转换所有这些?请帮我 :(
我正在尝试查询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.
有任何想法吗?提前致谢!
我是Android的新手,我正在使用SQLite进行查询.我的问题是,当我在字符串中使用重音时,例如
如果我做:
SELECT * FROM TB_MOVIE WHERE MOVIE_NAME LIKE '%a%' ORDER BY MOVIE_NAME;
Run Code Online (Sandbox Code Playgroud)
回归:
但如果我这样做:
SELECT * FROM TB_MOVIE WHERE MOVIE_NAME LIKE '%à%' ORDER BY MOVIE_NAME;
Run Code Online (Sandbox Code Playgroud)
回归:
我想在SQLite数据库中选择字符串而不关心重音和大小写.请帮忙.
我列出了一些比利时城市的变音字符:(Liège,Quiévrain,Franière等)我希望将这些特殊字符转换为与包含相同名称的大写字母进行比较,但没有变音符号( LIEGE,QUIEVRAIN,FRANIERE)
我首先尝试做的是使用大写:
LIEGE.contentEqual(Liège.toUpperCase())但这不合适,因为大写Liège是LIÈGE和不是LIEGE.
我有一些复杂的想法,比如替换每个角色,但这听起来很愚蠢而且过程很长.
关于如何以聪明的方式做到这一点的任何想法?
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
我有一个列,其中一些元素包含重音字母.例如:Grambú
我的要求是,当我搜索"Grambu"时,我也应该在结果中获得"Grambú".
对于此要求,我尝试对该特定列使用"COLLATE NOCASE"参数.但那没有用.
当我在网上搜索解决方案时,我发现很多人建议对重音字符进行规范化,并根据它创建另一个列作为唯一选项.
这个问题还有其他更简单的解决方案吗?