How to show backslash in a japanese locale

2020-06-23 05:29发布

In my application I have used a backslash as part of a text-based activity indicator (a typical /-\ sequence.. I removed the | because it had a different width). All was well until I saw my application being run on a japanese computer. The backslash was replaced with a japanese character.

How can I avoid this?

6条回答
We Are One
2楼-- · 2020-06-23 05:42

You just have to live with this. Editing things like shell scripts on a Japanese computer just looks weird, but you get used to it. Especially if your app is running remotely through an SSH session or something, you cannot possibly have control over what fonts are going to be used to render it.

Your best bet is probably to use fancier characters, like ╱─╲ or something like that and hope the user has a font that can show it.

查看更多
何必那么认真
3楼-- · 2020-06-23 05:43

Hold Ctrl + ` and it should change.

查看更多
Root(大扎)
4楼-- · 2020-06-23 05:46

You can use .oOo as a sequence. period, small o, capital O, small o.

that should work under any language.

查看更多
\"骚年 ilove
5楼-- · 2020-06-23 05:48

If the Unicode Fonts on the user computer supports it you could also try charactores of one of these Unicode blocks:

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

(for VCL only, for console applications the problem is the character set / code page of the shell)

But this sounds promising (except for the font part, which could be out of control):

Writeln in Delphi 2009 still uses ANSI (see System TTextRec) but you can use UTF8Encode and change the console's output code page to UTF8 by calling SetConsoleOutputCP(CP_UTF8). You will also need a good font to actually display Unicode characters.

(From https://stackoverflow.com/a/268202/80901)

查看更多
Deceive 欺骗
6楼-- · 2020-06-23 05:49

In your delphi application you can select a Font that renders that Unicode codepoint as a backslash. However, most standard fonts including many in Windows, will intentionally show a Yen mark instead of a backslash, in Japanese locales, for reason that users expect it.

If you want to be really sure of what is shown, use your own font, one that is not shipped with windows, and install it with your application.

查看更多
▲ chillily
7楼-- · 2020-06-23 06:04

Short of migrating to Unicode with a newer version of Delphi, you'll have to find a set of low ASCII characters that can do a suitable animation.
I'd suggest using a digit sequence [0-9] or [1-3] to stay with your 3 chars sequence. That should work with all the Japanese code sets.

查看更多
登录 后发表回答