如何在PHP中将Kruti Dev转换为Unicode

5

我希望能将Kruti Dev(印度语言)转换为Unicode。有一个这样的网站 - http://rajbhasha.net/drupal514/UniKrutidev+Converter,可以将Kruti Dev转换为Unicode,但是它是使用JavaScript完成的。我想在PHP中完成转换,请问有谁可以帮忙?


1
我是否正确地假设Kruti Dev不是编码,而是基于非标准字符映射的字体?也就是说,它只是将应该是“A”的字符映射到印度字符,“B”到另一个字符等等?如果是这样的话,因为它不是标准,就没有标准化的工具可以转换它。您必须编写自己的代码,将每个“错误”的字符映射到正确的Unicode字符。 - deceze
@deceze 那一定是为什么我找不到编码名称的原因。 - Orangepill
你好 @Sajal,你解决问题成功了吗?我也遇到了同样的问题,如果你能帮助我,请告诉我,谢谢。 - s4suryapal
@s4suryapal:你有什么要求? - Sajal
2个回答

6
你需要做的不是编码转换,而是自定义字符映射。
在编码中,特定的字节或字节序列表示特定的字符。然后字体将该字符可视化。例如,在ASCII中,字节x41表示字符"A",不同的字体有不同的形状来在屏幕上显示这个"A"。
在Kruti Dev的情况下,显然在它诞生时,印度语言没有编码;即在当时使用的任何系统中都没有特定的字节指定应该代表"व"。Kruti Dev的创建者所做的就是重新定义一个字母的形状。字节仍然表示该字母为"A",操作系统仍认为正在处理字母"A",但字体包含了"व"的形状以进行可视化显示。
因此,你无法进行编码转换,因为底层编码已经被非标准方式滥用。你需要做的是将拉丁字母映射到实际指定的印度字母。你需要将每个"A"替换为"व"(只是一个示例,不知道实际映射)。

1
谢谢伙计。是的,我明白我需要进行字符映射。你提供的链接,我已经在谷歌上搜索到了,但不确定如何使用它。再次感谢。 - Sajal

-1

请查看iconv

$str = iconv($srcencoding, $destencoding, $str);

utf8_encode() 函数出了什么问题? 请详细说明... - Rajeev Ranjan
@Rajeev 它可以将 Latin-1 编码的字符串转换为 UTF-8 编码。它与印度字符毫无关联,在那里没有任何用处。 - deceze
感谢大家的评论。是的,Krutidev是一种印地语字体。让我展示一下它的样子: fot; dqekj 'kkg - 这是从Excel中复制的Krutidev字体 विजय कुमार शाह - 这是等效的印地语言@Orangepill:我查看了iconv,但不确定如何使用它。请您在提供上述详细信息的同时帮忙解决。谢谢。 - Sajal
@SajalDas deceze 给出了正确的答案。 - Orangepill

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接