FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour String in unicode
Posts: 1392
Joined: Mon May 14, 2007 09:49 AM
String in unicode
Posted: Wed Nov 15, 2023 01:51 PM

Hi,

There is a string in unicode. The length of Latin characters is 1 byte, the length of characters of other code pages is 2 bytes.

How to get an array of characters of this string ?

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: String in unicode
Posted: Thu Nov 16, 2023 05:53 AM

Dear Yuri,

Please try:

? WideToStr( cUnicode )

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: String in unicode
Posted: Thu Nov 16, 2023 06:23 AM
This is a UTF8 encoded string.
You can use HB_UTF8LEN( cString ) to find the number of characters (not bytes) and HB_UTF8SUBSTR( cString, n, 1 ) to get the nth character (not byte)

Example:
Let us take a sample string in Hex: "41C39CC49EE0B095".
This is displayed as : AÜĞక
Code (fw): Select all Collapse
#include "fivewin.ch"

function Main()

   local cString := HEXTOSTR( "41C39CC49EE0B095" )
   local nChars, n
   local aChars := {}

   ? cString // --> AÜĞక
   ? "Length in Bytes : ", Len( cString ) // --> 8
   ? "Length in Chars : ", nChars := HB_UTF8LEN( cString ) --> 4 
   for n := 1 to nChars
      aAdd( aChars, HB_UTF8SUBSTR( cString, n, 1 ) )
   next

   XBROWSER aChars // { "A", "Ü", "Ğ", "క" }

   AEval( aChars, { |c,i| aChars[ i ] := { c, STRTOHEX( c ), Len( c ) } } )
   XBROWSER aChars SETUP oBrw:cHeaders := { "CHAR","HEX","BYTES" }

return nil
Regards



G. N. Rao.

Hyderabad, India
Posts: 1392
Joined: Mon May 14, 2007 09:49 AM
Re: String in unicode
Posted: Thu Nov 16, 2023 07:00 AM

Thank you, I will definitely use it!

Posts: 392
Joined: Tue Mar 10, 2009 11:54 AM
Re: String in unicode
Posted: Fri Nov 17, 2023 08:01 AM
For me, these two sources are helpful regarding UTF8:

1. 3.5 Codepage API - UTF8 and code page functions built into Harbour: http://www.kresin.ru/en/hrbfaq_3.html#Doc5

2. Unicode conversion functions for Harbour. http://www.hmgextended.com/files/CONTRIB/UnicodeConvert.prg unfortunately no longer online :(

Maybe someone can help 8) :wink:
Windows 11 Pro 22H2 22621.1848

Microsoft (R) Windows (R) Resource Compiler Version 10.0.10011.16384

Harbour 3.2.0dev (r2008190002)

FWH 23.10 x86
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: String in unicode
Posted: Fri Nov 17, 2023 09:00 AM
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 392
Joined: Tue Mar 10, 2009 11:54 AM
Re: String in unicode
Posted: Fri Nov 17, 2023 09:53 AM
muchas gracias Antonio 8)
Windows 11 Pro 22H2 22621.1848

Microsoft (R) Windows (R) Resource Compiler Version 10.0.10011.16384

Harbour 3.2.0dev (r2008190002)

FWH 23.10 x86

Continue the discussion