how to uniencode text for VCard v. 3.0? [2]

Klaus Major klaus at major-k.de
Wed Jun 11 14:22:18 EDT 2008


Hi Hugh,

> Hi Klaus,
>
> I just replied totally incorrectly to your UTF-8 query! Must be  
> having a bad hair day... My apologies.
>
> To avoid converting the entire string to UTF8 (when it's only  
> accented chars that need it), what I have done is store the decimal/ 
> UTF8/Hex character equivalents in a customproperty, then run each  
> element value through this encoder...
>
> function UTF8.encode tStr
> put numtochar(13)&numtochar(10) into tCRLF
> set the itemDel to TAB
> set the caseSensitive to "TRUE"
> repeat for each char L in tStr
>   get chartonum(L)
>   if it>=160 then
>     get lineOffset(CR&it&TAB, CR&the UTF8Table of this stack) --|  
> Get the table line
>     if it >0 then
>       if VCVERS="2.1" then put toUpper(item 3 of line it of the  
> UTF8Table of this stack) after stdout --| Use UTF8
>       else put toUpper(item 2 of line it of the UTF8Table of this  
> stack) after stdout --| Use HEX
>     end if
>   else put L after stdout
> end repeat
> replace "\" with "\\" in stdout
> replace "," with "\," in stdout
> replace ";" with "\;" in stdout
> replace CR with "=0D=0A" in stdout --| v2.1 WAB
> return stdout
> end UTF8.encode
>
> If the above looks of interest, let me know and I'll send you the  
> look-up table of character equivalents .

Very interested, please send :-)

> /H

Best

Klaus Major
klaus at major-k.de
http://www.major-k.de





More information about the use-livecode mailing list