0

我正在尝试将这行乌尔都语转换为拉丁语,然后将拉丁字符转换为 ASCII(通过删除重音等),但它似乎缺少一些字符。

为什么还有非拉丁字符(“ہ”、“ے”等)?

$ uconv -x 'Any-Latin'
دفعہ 1: تمام انسان آزاد اور حقوق و عزت کے اعتبار سے برابر پیدا ہوۓ ہیں۔ انہیں ضمیر اور عقل ودیعت ہوئی ہے۔ اس لئے انہیں ایک دوسرے کے ساتھ بھائی چارے کا سلوک کرنا چاہئے

dfʿہ 1: tmạm ạnsạn ậzạd ạwr ḥqwq w ʿzt ḵے ạʿtbạr sے brạbr py̰dạ ہwے̉ ہy̰ں۔ ạnہy̰ں ḍmy̰r ạwr ʿql wdy̰ʿt ہwỷy̰ ہے۔ ạs lỷے ạnہy̰ں ạy̰ḵ dwsrے ḵے sạtھ bھạỷy̰ cẖạrے ḵạ slwḵ ḵrnạ cẖạہỷے

为什么音译Any-ASCII不转换为 ASCII?

$ uconv -x 'Any-Latin; Latin-ASCII'
دفعہ 1: تمام انسان آزاد اور حقوق و عزت کے اعتبار سے برابر پیدا ہوۓ ہیں۔ انہیں ضمیر اور عقل ودیعت ہوئی ہے۔ اس لئے انہیں ایک دوسرے کے ساتھ بھائی چارے کا سلوک کرنا چاہئے

dfʿہ 1: tmam ansan azad awr hqwq w ʿzt kے aʿtbar sے brabr pyda ہwے̉ ہyں۔ anہyں dmyr awr ʿql wdyʿt ہwyy ہے۔ as lyے anہyں ayk dwsrے kے satھ bھayy charے ka slwk krna chaہyے
$ uconv -x 'Any-Latin; Latin-ASCII' -t latin1
دفعہ 1: تمام انسان آزاد اور حقوق و عزت کے اعتبار سے برابر پیدا ہوۓ ہیں۔ انہیں ضمیر اور عقل ودیعت ہوئی ہے۔ اس لئے انہیں ایک دوسرے کے ساتھ بھائی چارے کا سلوک کرنا چاہئے

Conversion from Unicode to codepage failed at output byte position 2. Unicode: 02bf Error: Invalid character found
4

1 回答 1

0

您可以使用以下命令查看这些字符是什么:

uconv -x 'Any-Latin; Latin-ASCII' --to-callback escape-c -t ascii

  • -t ascii :将输出转换为实际的 ASCII。不仅仅是拉丁语1。
  • --to-callback escape-c: 任何不可转换的东西,都会通过 'escape' 回调

这给了我们这个结果:

df\u02BF\u06C1 1: tmam ansan azad awr hqwq w \u02BFzt k\u06D2 a\u02BFtbar s\u06D2 brabr pyda \u06C1w\u06D2\u0309 \u06C1y\u06BA\u06D4 an\u06C1y\u06BA dmyr awr \u02BFql wdy\u02BFt \u06C1wyy \u06C1\u06D2\u06D4 as ly\u06D2 an\u06C1y\u06BA ayk dwsr\u06D2 k\u06D2 sat\u06BE b\u06BEayy char\u06D2 ka slwk krna cha\u06C1y\u06D2

因此,U+06C1 HEH GOAL例如不音译。您可以提交 CLDR 票证。

实际上,已经有这个了: http ://unicode.org/cldr/trac/ticket/4387

一旦有了乌尔都语-拉丁语音译,您就可以使用.ur-Latin而不是Any-Latin. 这样就使用了乌尔都语特定的规则,而不仅仅是阿拉伯文字规则。

如果我是你,我会跟进 4387 票。

于 2012-11-13T00:44:06.167 回答