Re-2: Umlaut - set the unicodetext of field 1 to numtochar(68) & numtochar(1)

runrev at animabit.de runrev at animabit.de
Fri Mar 2 03:50:15 EST 2007


Hello 
to the multilingual crowd hoping for runrev becoming 100 % unicode compliant. Yesterday I downloaded the new java netbeans IDE of sun and enjoyed it to be 100% unicode - the same VB.Net Express Edition.... I hope to enjoy this in runrev too in the near future.
We can not type the letter you wish directly in a runrev field, but we can use a wrapper (I hope this might help in the case you need it):
set the unicodetext of field 1 to numtochar(68) & numtochar(1)
This puts the unicode letter into the field.
use the following script to replace ´n to n with akut
put the unicodetext of field 1 into zeile
-- for getting the values:
--put chartonum(char 1 of the unicodetext of field 1) 
--put chartonum(char 1 of the unicodetext of field 1) 
-- these are the two byte of letter 1 of the field 1....
replace (numtochar(180) & numtochar(0) & numtochar(110) & numtochar(0)) with numtochar(68) & numtochar(1) in zeile
set the unicodetext of field 1 to zeile
This puts n into field 1 (just tested)
1. runrev seems not to be able to display letters and unicode diacritics (=2byte letter and 2 byte combining diacritical letter) together but can handle combined letters (2bytes) in the unicode standard with unicode fonts. I opened charmap.exe on win, searched for n (U-0144: Kleiner lateinischer Buchstabe N mit Akut) and copied it. Now it is important: If I copy this direct into runrev it fails. But if I copy it in notepad and from notepad into a field in runrev it is correct. I do not know why. The same is the case if I copy arabic, syriac etc. text from a webpage: After copiing it into notepad I can copy anything into a runrev field but not directly. Why?
2. You can create any letter in the unicode standard if you know the low byte and the high byte it exists of: 
n with akut for example is in the unicodestandard u-0144 hex
open your calc.exe in extended view, set to hex and put 44, change to decimal view and you will find 68, do the same with 01 which of course will be 01.
44 hex = 68 dezimal
01 hex = 01 dezimal
this means:
set the unicodetext of field 1 to numtochar(68) & numtochar(1)
creates this letter.
Hebrew Aleph is u-05d0
05 hex = 05 dec
c0 hex = 208 dec
set the unicodetext of field 1 to numtochar(208) & numtochar(5)& numtochar(209) & numtochar(5)
creates aleph and beth (but wrongly displays beth aleph according to the hebrew rtl direction).


Good luck

Regards, Franz Böhmisch

boehmisch at animabit.de
http://www.animabit.de
GF Animabit Multimedia Software GmbH
Am Sonnenhang 22
D-94136 Thyrnau
Tel +49 (0)8501-8538
Fax +49 (0)8501-8537



More information about the use-livecode mailing list