'------------------------------------------------------------------------------ ' This is 'UTF8.inc' ' Prototypes: ' FUNCTION Utf8ToAnsi (BYVAL S AS STRING) AS STRING ' ------------------------------------------------- ' > used to read an UTF8 encoded string and display it correctly ' in Windows dialogs ' ' FUNCTION AnsiToUtf8 (BYVAL S AS STRING) AS STRING ' ------------------------------------------------- ' > used to read an Unicode string from a Windows dialog and ' store it correctly in an UTF8 encoded file ' ' FUNCTION NoAccent (BYVAL s AS STRING) AS STRING ' ----------------------------------------------- ' > used to remove accented characters from a (Windows) string '------------------------------------------------------------------------------ FUNCTION Utf8ToAnsi (BYVAL S AS STRING) AS STRING LOCAL Buffer AS STRING LOCAL length AS LONG Buffer = SPACE$(LEN(S) * 2) MultiByteToWideChar %CP_UTF8, 0, BYVAL STRPTR (S), -1, BYVAL STRPTR (Buffer), LEN (Buffer) S = Buffer length = LEN (S) Buffer = SPACE$(length) WideCharToMultiByte %CP_ACP, 0, BYVAL STRPTR (S), -1, BYVAL STRPTR(Buffer), LEN(Buffer), BYVAL (0), BYVAL (0) FUNCTION = LEFT$(Buffer, INSTR(Buffer, $NUL)-1) END FUNCTION '------------------------------------------------------------------------------ '------------------------------------------------------------------------------ FUNCTION AnsiToUtf8 (BYVAL S AS STRING) AS STRING LOCAL Buffer AS STRING LOCAL length AS LONG Buffer = SPACE$(LEN(S) * 2) MultiByteToWideChar %CP_ACP, 0, BYVAL STRPTR (S), -1, BYVAL STRPTR(Buffer), LEN (Buffer) S = Buffer length = LEN (S) Buffer = SPACE$(length) WideCharToMultiByte %CP_UTF8, 0, BYVAL STRPTR (S), -1, BYVAL STRPTR (Buffer), LEN (Buffer), BYVAL (0), BYVAL (0) FUNCTION = LEFT$(Buffer, INSTR(Buffer, $NUL)-1) END FUNCTION '------------------------------------------------------------------------------ '------------------------------------------------------------------------------ FUNCTION NoAccent (BYVAL s AS STRING) AS STRING LOCAL r AS STRING r = s REPLACE ANY "ÀÂÄÉÈÊËÎÏÔÖÙÛÜÇÑ" _ WITH "AAAEEEEIIOOUUUCN" IN r REPLACE ANY "àâäéèêëîïôöùûüÿçñ" _ WITH "aaaeeeeiioouuuycn" IN r FUNCTION = r END FUNCTION '------------------------------------------------------------------------------