Text (uni)coding issue

Monte Goulding monte at appisle.net
Sat Aug 26 18:23:58 EDT 2017


Howdy Andrew

There’s a few things to deal with here.

- you need to know your database encoding (let’s assume UTF-8)

- you need to get values out of your database in a way that gives you the binary data rather than strings that the engine has assumed  were in native encoding. Use:

local tCursor
put "SELECT * FROM promosRedeemed" into tSql
put revQueryDatabase(sDbId, tSql) into tCursor
local tResults
repeat until revQueryIsAtEnd(tCursor)
      repeat for each item tColumn in revDatabaseColumnNames(tCursor)
           local tValue
           get revDatabaseColumnNamed(tCursor, tColumn, “tValue”)
           put textDecode(tValue,”UTF-8”) into tValue
           replace return with “ -=- “ in tValue  // ACCOUNTS FOR LINE BREAKS IN DATA
           put tValue  & tab after tResults
      end repeat
      put return into the last char of tResults
      revMoveToNextRecord tCursor
end repeat
revCloseCursor tCursor

- you need to write this file in an encoding you know so you can decode it when you download:

put "redemption-log_" & the seconds & ".txt" into tFileName
put textEncode(tResults, “UTF-8”) into url (“binfile:” & specialFolderPath("home") & "/public_html/server/apps/iot/logs/" & tFileName)

- you need to read the file and decode from the encoding you know it is in:

put textDecode(url (“binfile:” & <local path>), “UTF-8”) into tResults

Disclaimer: this code has just been written into an email client untested so may have some errors.

Cheers

Monte



More information about the Use-livecode mailing list