Unicode字符串替换不适用于完整的变音符号阿拉伯文本

Unicode string replace is not working with a full diacritics Arabic text

本文关键字:音符 符号 阿拉伯 文本 替换 字符串 不适用 适用于 Unicode      更新时间:2023-09-26

我想用空字符串替换下面的阿拉伯文本,但当我使用string.replace函数时,它不会替换它。

以下是字符串

بددمداٱلَهارل

来自http://api.globalquran.com/ayah/2:1/quran-uthmani

代码

singleAyah.verse.replace('بِسْمِ ٱللَّهِ ٱلرَّحْمَٰنِ ٱلرَّحِيمِ', '');

我甚至尝试过unicode

singleAyah.verse.replace(''u0628'u0650'u0633'u0652'u0645'u0650 'u0671'u0644'u0644'u0651'u064e'u0647'u0650 'u0671'u0644'u0631'u0651'u064e'u062d'u0652'u0645'u064e'u0670'u0646'u0650 'u0671'u0644'u0631'u0651'u064e'u062d'u0650'u064a'u0645'u0650 'u0627'u0644'u0653'u0645'u0653', '');

它仍然返回文本。

从视觉上看,您的2个字符串是相似的,但它们有一个不同的unicode字符串:Fathaَ和Shada的顺序在位置上交换。这对视觉没有影响,因为这两种情况在Fatha下的Shadda渲染方式相同:

''u0628''u0650''u0633''u0652''u0645''u0650''u0671''u0644''u0644''u0651''u064e''u06 47''u06 50''u0671''u0644''u0631''u0651''u064e''u06 2d''u0652''u0645''u064e''u0670''u0646''u0650''u0671''u0644''u0631''u0651''u064e''u06 2d''u06 50''u06 4a''u06 45''u06 50

''u0628''u0650''u0633''u0652''u0645''u0650''u0671''u0644''u0644''u064e''u0651''u06 47''u06 50''u0671''u0644''u0631''u064e''u0651''u02d''u0652''u0645''u064e''u0670''u0646''u0650''u0671''u0644''u0631''u064e''u0651''u02d''u0650''u064a''u0645''u0650