Irf*_*lic 4 delphi unicode search utf-8 arabic
我有包含阿拉伯语文本的utf-8编码文件,我必须搜索它.
我的问题是变音符号,如何搜索跳过它们?
就像你在Internet Explorer中加载该文本(在HTML ofcourse中转换文本)一样,IE正在跳过那些变音符号?
有帮助吗?
Edit1:只需按以下代码执行搜索:
var m1 : TMemo; //contains utf-8 data)
m2 : TMemo; // contains results
...
m2.lines.BeginUpdate;
for s in m1.Lines do
begin
if pos(eSearch.Text,s)>0 then
begin
m2.Lines.Add(s);
end;
end;
m2.Lines.EndUpdate;
Run Code Online (Sandbox Code Playgroud)
Edit2:unicode数据示例:
قلهواللهأحد如果你只搜索没有变音符号的字母,那么就找不到单词قل.
在Vista +上你可能(我没有阿拉伯语经验)使用CompareString和选项LINGUISTIC_IGNOREDIACRITIC.
NORM_IGNORENONSPACE也可以提供帮助.然后,它可能不会.
或者(但我只是猜测)你可以用GetStringTypeEx解析你的字符串并手动删除变音符号.可能你必须先用标志MAP_COMPOSITE 调用FoldString或MultiByteToWideChar.
| 归档时间: |
|
| 查看次数: |
1189 次 |
| 最近记录: |