if i do ansistringvar := widestringvar or widestringvar := ansistringvar
what does the compiler do?

1: use the systems default encoding (if so obtained from where?)
2: use utf-8
3: use iso-8859-1
4: use something else?

furthermore if the encoding used is one not capable of representing all
unicode code points what are the reduction rules used in the conversion from
widestring to ansistring?

Compiler internally uses Wide2AnsiMoveProc and Ansi2WideMoveProc functions which can be reassigned by user. Currently their are just maping lower 128 chars in one representation to other. On Windows there are system functions that can be used to do conversion: MultiByteToWideChar and WideCharToMultiByte - these functions can take into account specified or globally set code page.



_______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to