2010-04-22 8 views
5

Delphi 2010Delphi standard Code page de sortie d'entrée

Lors de la lecture du fichier en utilisant la procédure readln, par défaut je reçois chaîne unicode conversion de la page de code 1251 (page de code de Windows).

Comment puis-je changer cela et lire le fichier dans un autre page de code, en 1252 ou UTF16?

Répondre

0

Vous pouvez utiliser un TStreamReader - vous pouvez spécifier que vous voulez lire encodage lors de la construction elle.

Par exemple, TStreamReader.Create(FileName, TEncoding.UTF8); crée un TStreamReader qui peut être utilisé pour lire du texte à partir du fichier spécifié dans FileName, en utilisant UTF-8 comme codage. Ne pas utiliser ReadLn/WriteLn pour le nouveau code.

+0

-1. Il y a deux aspects à la question que cette réponse n'aborde pas. Le premier est que la source de l'entrée est stdin, pas un fichier disque. L'autre est que le code actuel utilise 'readln', pas un flux. (Si c'est parce que 'readln' utilise toujours la page de code de Windows, alors c'est bien, mais s'il vous plaît dites-le, ou bien il semble que vous ayez ignoré les détails de la question.) –

2

Comme suggéré par Michael Madsen, utilisez TStreamReader dans SysUtils.

Questions connexes