On Apr 7, 2011, at 5:40 PM, Mark Schonewille wrote: > Hi, > > The whole idea of using unicode is that you don't need isoToMac anymore. > > If you happen to be storing unicode data in a database that isn't encoded as > unicode, then it simply won't work. What is the encoding of the database? Is > it actually UTF8? > > There's a good chance that LiveCode is unable to retrieve the unicode data > directly from the MySQL database, because LiveCode cannot retrieve binary > data from the command line, externals and (database) drivers. LiveCode can, > however, retrieve binary data through sockets. If you make a simple PHP > script, which shold reside on the server and can be called by LiveCode using > the put URL command, then you will be able to retrieve correct unicode data. > > Once you got the PHP script, you should be able to execute a simple script > like this: > > put "http://domain.com?query=read&name=john&city=new%20york" into myUrl > put url myUrl into myData > put uniencode(myData,"UTF8") into myData > set the unicodeText of fld "Foo" to myData > > To save the data you need to do something like this: > > put urlEncode(unidecode(the unicodeText of fld "Name","UTF8")) into myName > put urlEncode(unidecode(the unicodeText of fld "City","UTF8")) into myCity > put "http://domain.com?query=write&name=" & myName & "&city=" & myCity into > myUrl > get url myUrl > > This is just an example to inspire you. The above won't work with your set-up. > > I delivered a project yesterday, which is based on this mechanism: always > convert your data to UTF8 before saving it and convert it back to unicode > (UTF16) when retrieving it. Make sure that the database is UTF8 capital > insensitve encoded. > > Why store as UTF8 and not as UTF16? Because you don't want to mess with > little and big endian.
I'll second what Mark said. Storing your text as UTF-8 in the database is the way to go. I do this a lot, and it's been completely reliable. (But make sure to set your MySQL table encodings to UTF-8, as Mark indicated. To save your data to the DB as UTF-8, take your text from a field with unicode text in it: put unidecode(the unicodeText of fld "myUniFld","UTF8") into tUni8Txt Then just execute a standard SQL statement (or send it through a server-side script) to insert it into your database table. When you retrieve it from the DB, just reverse the process: set the unicodeText of fld "myUniFld" to uniEncode(tTextFromDB,"UTF8") HTH Devin Devin Asay Humanities Technology and Research Support Center Brigham Young University _______________________________________________ use-livecode mailing list [email protected] Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
