Java RTL字符的ANSI值

Java RTL字符的ANSI值,java,text,utf-8,ansi,Java,Text,Utf 8,Ansi,我想知道在文本文件中进行RTL对齐的字符“\u202B”的ANSI值,我在UTF8文件中使用它的问题,它使文本RTL对齐,但当文本文件为ANSI时,它会显示标记“?”,这意味着该字符未识别,所以任何人都可以知道ANSI中这个字符的相反代码是什么?没有。美国国家标准协会是一个相当古老的标准。它不支持RTL语言,如阿拉伯语或希伯来语 维基百科文章“”列出了它支持的所有代码 解决方法是使用一种字体来呈现所需的字形(字符),以相反的顺序打印它们,并使用光标移动命令右对齐文本 [编辑]您混淆了几件事。首先

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

没有。美国国家标准协会是一个相当古老的标准。它不支持RTL语言,如阿拉伯语或希伯来语

维基百科文章“”列出了它支持的所有代码

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

[编辑]您混淆了几件事。首先,ANSI是一组用于控制终端的转义序列

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

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

特殊的Unicode字符从右到左嵌入(U+202B)在任何其他字符编码中都没有表示形式

您必须编写一个程序来解析输入,然后将文本输出到打印机,按正确的顺序对字符进行排序。没有快捷方式可执行此操作。

如果系统语言环境设置为阿拉伯语,则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  

你是说ASCII,而不是ANSI?是的,我使用的是windows 1256编码。。。如果系统语言环境设置为阿拉伯语,则ANSI代码页为WS-1256。我将文件发送到仅支持windows 1256编码的打印机,我需要这个从右到左的字符来编码有什么建议吗?是什么阻止了你解析文件并重新排序字符以获得你想要的输出?我试图逐行读取文件并在空格上拆分,然后重新排序文件,但我没有得到正确的输出顺序始终存在问题,更改方向的文本如何使用java在文本文件中写入此字符,应使用“0XFE”还是“\u0XFE”?我尝试了很多,但是字符看起来像那样,没有映射到从右到左的标记use
\xFE
。请确保使用字节数组而不是字符串-如果使用字符串,则在将字符串转换为字节时,这些特殊字符将丢失。这也可能会起作用:
新字符串(“\u200e”)。getBytes(“Windows-1256”)
应提供大小为1的字节数组,其中包含单个字节
0xFE
(或
-2
)。