Page 1 of 1

Converting unicode code [ANSI format] to unicode glyphs

Posted: Tue Sep 04, 2018 5:40 am
by Nostradamus
Hello Sergey,
I was wondering how to use Delphi [for use in Delphi5 with TNT unicode components and MS Access 2003 database]

to convert 13000 into ð“€€. and vice versa.



This way I can use ANSI format codepoint text to store Egyptian Hieroglyphs inside a MS Access 2003 Database-Table then use the encoder/decoder to
display the Egyptian Hieroglyphs on screen.

Any help is appreciated.

Richard

Re: Converting unicode code [ANSI format] to unicode glyphs

Posted: Tue Sep 04, 2018 5:41 am
by Nostradamus
See link below

https://r12a.github.io/uniview/#title

use the section

SHOW BLOCK >>> to select Egyptian Hieroglyphs.

Re: Converting unicode code [ANSI format] to unicode glyphs

Posted: Tue Sep 04, 2018 5:27 pm
by Sergey Tkachenko
If the question is how to display these characters in TRichView...

First, you need a new version of TRichView, where UTF-16 is supported completely.

To insert such codes in TRichView, they need to be converted to UTF16.
TRichView includes a function for this in RVUni unit: RVU_UnicodeCharToUTF16:

Code: Select all

RichViewEdit1.InsertText(RVU_UnicodeCharToUTF16($13000));
RVU_UnicodeCharToUTF16 converts UTF-32 code to up to two WideChars (i.e. to UTF16)
There is also a reverse function, RVU_UTF16ToUnicodeChar, it converts a surrogate pair of WideChars to UTF-32

Also, in TRichViewEdit, you can type 13000 directly in the editor and press Alt+X to convert it to the character.

Also, new version RichViewActions support all Unicode characters in the "Insert Symbol" dialog:
egiptian-hieroglyphs.png
egiptian-hieroglyphs.png (69.17 KiB) Viewed 24055 times

Re: Converting unicode code [ANSI format] to unicode glyphs

Posted: Wed Sep 05, 2018 5:12 am
by Nostradamus
Will this code patch work with TDBEdit, TEdit or TText ?

Will it work with Delphi 5 Enterprise , MS Access 2003 Windows XP ?

With regard to
RVU_UnicodeCharToUTF16 converts UTF-32 code to up to two WideChars (i.e. to UTF16)
There is also a reverse function, RVU_UTF16ToUnicodeChar, it converts a surrogate pair of WideChars to UTF-32


Will this work with Delphi 5 on Windows XP?

I have another computer with Windows 7 and Delphi 2010 on that one?

Re: Converting unicode code [ANSI format] to unicode glyphs

Posted: Wed Sep 05, 2018 5:13 am
by Nostradamus
I want to store these numbers 13000 13001 13002 in a DBMemo in this format and display them on screen as Script

Re: Converting unicode code [ANSI format] to unicode glyphs

Posted: Wed Sep 05, 2018 9:04 am
by Sergey Tkachenko
RVU_UnicodeCharToUTF16 and RVU_UTF16ToUnicodeChar do a very simple math calculation (using information which you can find in Wikipedia), they are platform-independent and Delphi-version-independent.
You can use these functions even in applications that do not use TRichView: copy them to another unit, replacing TRVUnicodeString to UnicodeString or WideString, and TRVUnicodeChar to WideChar.

The result of RVU_UnicodeCharToUTF16 is WideString, you can insert it in TEdit in Delphi5+TNT or Delphi2010.
I believe it should work, at least if you assign a font that has Egyptian glyphs (in TRichView, a font substitution works, so if the font does not have some glyphs, glyphs from another font are used; in standard controls, font substitution may sometime work and sometimes not).
But I suggest you to test.