在我的应用程序中,我使用反斜杠作为基于文本的活动指示器的一部分(典型的/ - \序列..我删除了|因为它有不同的宽度)。一切顺利,直到我看到我的应用程序在日本计算机上运行。反斜杠被替换为日文字符。
我该如何避免这种情况?
答案 0 :(得分:2)
在delphi应用程序中,您可以选择一个将Unicode codepoint呈现为反斜杠的Font。但是,大多数标准字体(包括Windows中的许多字体)都会故意在日语语言环境中显示日元标记而不是反斜杠,原因是用户期望它。
如果您想确定所显示的内容,请使用您自己的字体,不是Windows附带的字体,并将其与您的应用程序一起安装。
答案 1 :(得分:2)
您可以使用.oOo作为序列。期间,小o,资本O,小o。
应该适用于任何语言。
答案 2 :(得分:0)
你必须忍受这个。在日本计算机上编辑shell脚本之类的东西看起来很奇怪,但你已经习惯了。特别是如果您的应用程序通过SSH会话远程运行,您无法控制将使用哪种字体来呈现它。
你最好的选择可能是使用更漂亮的角色,比如╱─╲或类似的东西,并希望用户有一个可以显示它的字体。
答案 3 :(得分:0)
如果没有使用较新版本的Delphi迁移到Unicode,您必须找到一组可以执行合适动画的低ASCII字符。
我建议使用数字序列[0-9]或[1-3]来保持你的3个字符序列。这应该适用于所有日语代码集。
答案 4 :(得分:0)
如果用户计算机上的Unicode字体支持它,您还可以尝试其中一个Unicode块的字符串:
http://en.wikipedia.org/wiki/Arrow_%28symbol%29
http://en.wikipedia.org/wiki/Box_drawing_characters
http://en.wikipedia.org/wiki/Unicode_Geometric_Shapes
http://en.wikipedia.org/wiki/Miscellaneous_Technical_%28Unicode%29
http://en.wikipedia.org/wiki/Miscellaneous_Symbols
(仅限VCL,对于控制台应用程序,问题是shell的字符集/代码页)
但这听起来很有希望(除了可能失控的字体部分):
Delphi 2009中的Writel仍然使用ANSI(参见System TTextRec),但是你 可以使用UTF8Encode并将控制台的输出代码页更改为UTF8 通过调用SetConsoleOutputCP(CP_UTF8)。你还需要一个好的字体 实际显示Unicode字符。
答案 5 :(得分:-2)
按住 Ctrl + `,它应该会改变。