String in unicode

String in unicode

Postby Natter » Wed Nov 15, 2023 1: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 ?
Natter
 
Posts: 1120
Joined: Mon May 14, 2007 9:49 am

Re: String in unicode

Postby Antonio Linares » Thu Nov 16, 2023 5:53 am

Dear Yuri,

Please try:

? WideToStr( cUnicode )
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41332
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: String in unicode

Postby nageswaragunupudi » Thu Nov 16, 2023 6: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: Select all  Expand view
#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


Image
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10259
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: String in unicode

Postby Natter » Thu Nov 16, 2023 7:00 am

Thank you, I will definitely use it!
Natter
 
Posts: 1120
Joined: Mon May 14, 2007 9:49 am

Re: String in unicode

Postby frose » Fri Nov 17, 2023 8: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
User avatar
frose
 
Posts: 392
Joined: Tue Mar 10, 2009 11:54 am
Location: Germany, Rietberg

Re: String in unicode

Postby Antonio Linares » Fri Nov 17, 2023 9:00 am

regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41332
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: String in unicode

Postby frose » Fri Nov 17, 2023 9: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
User avatar
frose
 
Posts: 392
Joined: Tue Mar 10, 2009 11:54 am
Location: Germany, Rietberg


Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: Adolfo, Google [Bot] and 18 guests