Default Unicode Font Available in Windows Server 2003? - windows

Can anyone tell me does windows server 2003 come with unicode font that can be used in crystal report?

"Unicode font" is an imprecise term for a font with wide coverage of the Unicode character set. Microsoft has two such fonts (that I'm aware of): Arial Unicode MS and Lucida Sans Unicode. Neither one comes with older versions of Windows.
So the answer to your question is no.
Arial Unicode MS is included in most versions of Office, so it's not uncommon to find that one on a machine with an older OS, but you cannot rely on it being there. It also has some deficiencies with respect to kerning and certain combining marks, even compared to the regular Arial font (that doesn't have the broad script support).
Your best bet is to rely on the OS to do font linking and font fallback for you. If that's not an option, you'll have to implement your own, but it's not easy.

If you can't find a suitable font installed by default in Windows, perhaps you can use one that can be installed freely. There are many such, and guides to help you find them. One guide: http://www.unifont.org/fontguide/

Related

Windows language pack vs. localised version

I want to test my software works on Windows regardless of language. Is there a difference between a localised install Windows 7 and an install with the language changed by a language pack? Is it enough just change language packs to confirm my software works or do I need to install a localised version? In particular I want to be sure that the code page used by the API changes.
It's equivalent, you are perfectly safe using a language pack. I'm a bit concerned about your comment regarding code pages though--Windows 7 natively runs in Unicode (Windows 95/98/ME did not and relied on code pages, but this has changed from Windows XP) and it seems unthinkable nowadays not to develop in Unicode, or are you doing something very specific that requires you to use non-Unicode encodings?
If that clarifies things, on Windows XP and beyond, all the ANSI versions of the APIs (ending with a A) simply wrap the Unicode APIs (ending with a W), doing conversion to Unicode and back to ANSI on the way out.

Is it possible to display Chinese characters if I don't install files for East Asian languages for my English Windows XP?

As you know, we can install files for East Asian language in Control Panel-->Regional and language options-->Languages tab-->Supplemental language support.
The question is: if I don't install this files (by unchecking the checkbox) for my English Windows XP, does that mean none application on the PC can display Chinese characters properly?
Or, if a app says that it's "UNICODE compatible", does this mean that it can handle the Chinese characters properly even when we don't have East Asian language support on our pc?
(I don't have the permission to uncheck the checkbox and test it on my own, so I hope I can get an answer from you guys.)
Any answers will be appreciated.
If an application is operating system dependent, you won't be able to see Chinese characters without adding supplemental language support. But os independent softwares will not be affected by that. So, it completely depends on the softwares you are using.

How will I convert characters? Or other solutions

I found out (though my other question) that my IME outputs Hangul Compatibility Jamo (U+3130 – U+318F) instead of regular Hangul Jamo(U+1100 – U+11FF).
So I tried asking a question in superuser about other IMEs, no replies yet.
Should I just convert it myself? What exactly does that entail? Is it too complicated? Any ideas on how to? Any help would be appreciated.
Language: Delphi
OS: WinXP
IME: Korean Input System (IME 2002)
There is no reason you could not write an interesting experimental editor control with its own built in Unicode Compose feature. However, before you did that, you might look for a way to change the configuration of the IME. This seems to be a really interesting corner-case you have to work with. I was already surprised about your other question - that Windows has the ability to handle Raw Input from keyboards.
I found that source code for something that says it is the Korean IME is available for Windows CE. You might learn something by studying it, even though it is for Windows CE rather than XP.
http://msdn.microsoft.com/en-us/library/ee491900.aspx

Can I avoid using CP1252 on Windows?

I would like all my toolkit to use UTF-8 but find that some tools on Windows seem to use CP1252 (which appears to be Windows-specific). Does this create output which is incompatible and if so at which codepoints? If so, can I do anything about it?
(I don't completely understand the issues so I'd be grateful for basic education on these encodings).
Tools hard-coding for code page 1252 on Windows is very unlikely. Much more likely is that it happens to be the default code page on your machine. 1252 is used in Western Europe and the Americas. It is configured in Control Panel, Regional and Language options. They've been using different names for it, on Win7 it is in the Administrative tab, Change System Locale.
Yes, many tools use the default code page unless they have a good reason to chose another encoding. The BOM is such a good reason. Notable examples are Notepad (unless you change the Encoding in the File + Open dialog to something else than Ansi) and C/C++ compilers. There typically isn't anything special you need to do to use the default code page. Guessing the correct code page for a text file when you don't have a BOM is impossible to do accurately. Google "bush hid the facts" for a very amusing war story.
Six years old and still relevant: The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)
Now, about your question: Yes, there are still tools out there that choke on UTF-8 files. But more and more tools are "getting it". If you're developing your own stuff, you might want to look into Python 3 where all strings are Unicode. The philosophy is to convert all your inputs into Unicode (if necessary) as early as possible, and reconvert them to a target encoding as late as possible. There are toolkits out there that will do a good job of guessing the encoding of a particular file (for example, Mark Pilgrim's chardet, a port of Mozilla's encoding detector). This is nice if you're working with files that don't specify an encoding.
CP1252 and UTF-8 are the same for all characters < 128. They differ above that. So if you stick to English and stay away from diacritical marks these will be the same.
Most of the Windows tools will use whatever is set as the current user's current codepage, which will default to 1252 for US Windows. You can change that to another codepage pretty easily. But UTF-8 is NOT one of the available codepage options for Windows. (I wish it was).
Some utilities under Windows will understand the UTF-8 byte-order mark at the start of a file. Unfortunately I don't know how to determine if this will work except to try it.
UTF-8 is supported on Windows but not as a current codepage. You can use UTF-8 for converting to/from it but you cannot set is as current codepage.
First do not try to waste time by setting the codepage - this approach will remind you of Sisyphus myth - you can't really solve the problem using codepages, you have to use Unicode.
The only real solution for you is to build your application as Unicode so it will use UTF-16 and to convert to/from UTF-8 on in/out operations. This is done quite simple because fopen supports reading or writing UTF-8.
Regarding the usage of other Windows tools with UTF-8 file, you should not be aware because if the tool is able to work with ASCII it will work with UTF-8 (even so it may not be able to distinguish between Unicode chars but at least it will be able to load/parse the files).
BTW, You forgot to specify what programming language are you using and what Windows tools are you considering for usage.
Also, if you ware interested about more internationalization stuff please visit my blog.i18n.ro

i18n shell in windows

Is there an i18n shell in windows that supports a large character set? Testing my application in windows results in some math characters not being rendered correctly. The Lucida font in cmd.exe and powershell do not have a wide enough selection.
Unicode UTF-8 would be the most preferable, followed by the other Unicode encodings.
I'm not sure if this is a problem in the font or the console itself but you could try installing the DejaVu Sans Mono font and see if that provides the necessary characters.
CMD.EXE supports it just fine; the issue is that it is doesn't allow a whole lot of other fonts by default and Lucida Console, usually the only TrueType font there, has no fonts defined in the font fallback chain. See http://www.siao2.com/2008/03/19/8323216.aspx and the screenshots I link to in the comments for that blog post.
You may want to see http://www.siao2.com/2006/10/19/842895.aspx on how to make more fonts appear amongst those you can choose as the main console font.
Also, make sure that your application really uses a Unicode codepage for its output - http://illegalargumentexception.blogspot.com/2009/04/i18n-unicode-at-windows-command-prompt.html probably explains the issue better than I could (or, at the very least, as well as I could).
I just found the ActiveState Tcl does a really good job with tkcon.
When starting tkcon.tcl, I just have to type:
encoding system utf-8
It works well and even has tab completion. Of course, it is a Tcl shell and not a system shell.
It seems to be able to find characters for all of the symbols I am currently using in the test suite for my application.
While working under Windows, I use the DejaVu Sans Mono font along with Console for getting better Unicode (UTF-8) support.

Resources