RTL字符的ANSI值

时间:2014-07-15 11:39:10

标签: java text utf-8 ansi

我想知道字符" \ u202B"的ANSI值。在文本文件中进行RTL对齐,我在UTF8文件中使用它的问题,它使文本RTL,但是当文本文件是ANSI时,它显示标记" ???"这意味着这个字符没有被识别出来,所以任何人都可以知道ANSI中这个字符的相反代码是什么?

2 个答案:

答案 0 :(得分:1)

Windows-1256是" ANSI代码页"如果系统区域设置设置为阿拉伯语。 用词不当,但所有MS文档都称之为...... 在Windows世界" ANSI代码页"应阅读"系统代码页"

无论如何,U + 202B在windows-1256中没有等价物。 您可以通过

实现所需
U+200E  LEFT-TO-RIGHT MARK    0xFD in windows-1256
U+200F  RIGHT-TO-LEFT MARK    0xFE in windows-1256  

答案 1 :(得分:0)

没有。 ANSI American National Standards Institute是一个非常古老的标准。它不支持阿拉伯语或希伯来语等RTL语言。

维基百科文章" ANSI escape code"列出它支持的所有代码。

解决方法是使用呈现所需字形(字符)的字体,以相反的顺序打印它们,并使用光标移动命令右对齐文本。

[编辑] 您会混淆一些事情。首先,ANSI是一组控制终端的转义序列。

ASCII,Windows 1256和UTF-8是字符编码(即将文本表示为八位字节或字节序列的方式)。

Unicode是一个字形库。它试图包含以任何语言显示文本所需的每个字形。您可以使用UTF-8,-16等对Unicode数据进行编码,以对其进行序列化。

特殊的Unicode字符RIGHT-TO-LEFT EMBEDDING(U + 202B)在任何其他字符编码中都没有表示。

您必须编写一个程序来解析输入,然后您必须将文本输出到打印机,按正确的顺序对字符进行排序。没有捷径可以做到这一点。