[DUG] Get the number representation of WideChar?

Gajo Csaba csaba at enyem.com
Wed Oct 18 01:21:04 NZDT 2006


Hello,

I haven't been active on this list for several years, so I hope you're  
still alive :)
I have a problem with Unicode characters. I'm doing a conversion from IDN  
to PunyCode. IDN is the domain name in any character set, for example in  
Arabic letters. This is converted to something like xn--fd4ewg.com  
(Punycode) so it is accessible eveywhere.

I'm using Delphi 5. For Unicode characters I'm using the TNT component set.

Now, to convert IDN strings to Punycode, I need to check each character.  
If Ord(ch) > 127 then it's a Unicode and I have to convert it.
The problem is it looks like Ord doesn't support WideChar's. If I do Ord  
on any russian letter it will always work as if I've used Ord('?').  
Because of this, my conversion function always fails.

Is there some way to get the number representation of a Unicode char?

Also, I'm using AnsiPos for retrieving the starting position of  
substrings. Is there some similar method for Copy? For example, I'm not  
sure if Copy(str,1,1) will copy a wide character correctly, since  
WideChars are 2 bytes. I know that accessing wide chars with str[1] is  
wrong.

Regards,
Csaba



More information about the Delphi mailing list