[fpc-pascal] SetCodePage in older FPC 3.0.4
Michael Van Canneyt
michael at freepascal.org
Wed May 29 14:39:11 CEST 2019
On Wed, 29 May 2019, Tomas Hajny wrote:
> On 2019-05-29 12:19, Michael Van Canneyt wrote:
>> On Wed, 29 May 2019, Michael Van Canneyt wrote:
>>> On Wed, 29 May 2019, AlexeyT wrote:
>>>
>>>>> FPC generally uses system library functions for the conversion, so
>>>>> it
>>>> does not depend on the FPC version.
>>>>
>>>> But FPC has such files. Are they used in SetCodePage code?
>>>>
>>>> user at PC:~/fpcupdeluxe/fpcsrc/packages/rtl-unicode/src/inc$ ls cp*
>>>> cp895.pas cp932.pas cp936.pas cp949.pas cp950.pas cpbuildu.pp
>>>>
>>>> and
>>>>
>>>> user at PC:~/fpcupdeluxe/fpcsrc/rtl/ucmaps$ ls
>>>
>>> These files are not used, they predate the fpWidestring unit, they are
>>> for the
>>> charset unit, which can be used to manually convert codepages.
>>
>> Correction: if you use the fpwidestring unit, these charset units are
>> used.
>
> Well, I believe that it's still a bit imprecise. ;-) My understanding is
> that a programmer deciding to use fpwidestring may decide on the set of
> character mappings to be supported out of the box in his program. That
> may be done in two ways. One is by including a unit for a particular
> character set (e.g. fpcsrc/rtl/charmaps/cp1252.pas or
> fpcsrc/packages/rtl-unicode/src/inc/cp932.pas) or a set of character
> sets (fpcsrc/rtl/charmaps/cpall.pas and/or
> fpcsrc/packages/rtl-unicode/src/inc/cpbuildu.pas) in the uses clause of
> one of the project source files. The other is by loading a binary file
> (install/unicode/charset/*.bcm) dynamically at runtime
> (LoadBinaryUnicodeMapping in fpcsrc/rtl/inc/charset.pp). Both the units
> and the binary files are generated from the *.txt files using tools
> included with FPC.
Yes. See
https://www.freepascal.org/docs-html/current/rtl/fpwidestring/index.html
Michael.
More information about the fpc-pascal
mailing list