我想知道字符" \ u202B"的ANSI值。在文本文件中进行RTL对齐,我在UTF8文件中使用它的问题,它使文本RTL,但是当文本文件是ANSI时,它显示标记" ???"这意味着这个字符没有被识别出来,所以任何人都可以知道ANSI中这个字符的相反代码是什么?
答案 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)在任何其他字符编码中都没有表示。
您必须编写一个程序来解析输入,然后您必须将文本输出到打印机,按正确的顺序对字符进行排序。没有捷径可以做到这一点。