We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
We try to input Hebrew charactor in Keil C 2.20a, while it displayed as "????". Can Keil C support multi language input? How? Looking forward for your help.
Today, most international character sets are encoded using unicode (UTF-8 or UTF-16).
The Keil compilers (C51, C251, and C166) only support ASCII files. They do not support any unicode file formats.
The RealView compiler for ARM devices does support unicode. See www.keil.com/.../armccref_cihdigag.htm for more information.
Jon
"The Keil compilers (C51, C251, and C166) only support ASCII files. They do not support any unicode file formats."
Of course, that doesn't stop you from developing your own support - as far as the 8051 is concerned, they're all just bits and bytes anyhow!
Thanks Gentlemen. So, for C51 MCU, if I want to support unicode input, what kind of complier we can use? Could you please give me some suggestion about the tools?
I tried to ask you in the first answer you got in this thread if you wanted Hebrew I/O or if you wanted Hebrew in the source code.
I don't think any compiler has native support for unicode or MBCS or similar, but the good part is that if you just want to send and receive Hebrew on a serial port you can use any compiler.
First you have to decide what character formatting you want to use. A multi-byte character set requires you to recognize the magic break bytes that informs that at a character is 2 or 3 bytes long when receiving data.
When emitting data, you can store any character data as hex data in the source code - the uC doesn't have to know that it isn't ASCII data it emits.
This is true. And, this is what we have seen most customers doing. They encode the characters using another tool and generate standard 8-bit data that is stored as an array of char.