Unicode in variables

Devin Asay devin_asay at byu.edu
Mon Aug 19 16:07:09 EDT 2013


On Aug 19, 2013, at 1:59 PM, J. Landman Gay wrote:

> On 8/19/13 2:43 PM, Devin Asay wrote:
> 
>>> When I run uniEncode(tData,"UTF8") on it, the high-ascii characters
>>> are in the variable watcher as "+" and an unprintable box. Can I
>>> assume the real character is in there? Will it work for text
>>> chunking, etc? When I split it into an array, will the keys be
>>> intact?
>> 
>> I would do all of the chunking and splitting before you do uniEncode.
>> Think of UTF8 as a reliable storage format, and only convert them
>> when you are ready to display them.
> 
> I can't. I need to do lookups on the keys. The keys have to match the
> text as it is displayed in fields.
> 
> Basically, I'm storing a glossary. The keys are the glossary terms, some
> of which are unicode. The definitions are the elements. The user points to a word in a field and I need to retrieve the definition by matching the displayed field text (which is unicodetext) with the glossary key.
> 
> I can't make it work.

Try this:

When the user selects the text to look up, convert it to utf8 then do the lookup on the utf8 text. UTF8 is just ASCII chars, so chunking and searches should work fine. 

Something like this should work:
User clicks term to look up.
   get the text of the click line -- this will be displayed as UTF16
   put unidecode(it,"utf8") into tSearchStr
   put glossaryArray[tSearchStr] into tDefinitionUTF8
   set the unicodeText of fld "definition" to uniencode(tDefinitionUTF8,"utf8")

This is not tested, but I've done things similar to this before with good success.

HTH

Devin

Devin Asay
Learn to code with LiveCode University
http://university.livecode.com







More information about the use-livecode mailing list