O que é Codepage 0?

votos
4

Eu estou usando a função Delphi

StringCodePage

Eu chamo-lhe em uma corda retornado por uma função COM (getContents anotação do Acrobat - ver os meus outros posts) e ele retorna 0.

O que é 0? Ansi?

Publicado 09/02/2009 em 20:27
fonte usuário
Em outras línguas...                            


2 respostas

votos
8

Código da página 0 é CP_ACP, página atual código do Windows ANSI.

De Windows.pas:

{$EXTERNALSYM CP_ACP}
CP_ACP                   = 0;             { default to ANSI code page }

De MSDN :

CP_ACP

A página de código Windows ANSI atual do sistema. Este valor pode ser diferente em computadores diferentes, mesmo na mesma rede. Ele pode ser alterado no mesmo computador, levando a dados armazenados tornando-se irremediavelmente corrompido. Este valor destina-se apenas para uso temporário e armazenamento permanente deve ser feito usando UTF-16 ou UTF-8, se possível.

Respondeu 09/02/2009 em 20:48
fonte usuário

votos
3

A única maneira StringCodePage()pode retornar 0 é se você está passando em um espaço em branco AnsiString, retornando, assim, a sua afinidade página de código em tempo de compilação, ou estão passando em um não-branco AnsiStringque tem codepage 0 atribuído a sua carga útil. Delphi usa WideStringpara cordas COM, e StringCodePage()não retornará 0 para qualquer tipo de cadeia, exceto simples AnsiString. No D2009, a RTL não fez um trabalho muito bom de armazenamento de página de código de tempo de execução real do sistema operacional para AnsiStringcargas úteis, para que eles geralmente continha a página de códigos de afinidade em tempo de compilação de 0. Isso é funcional no que diz respeito a conversões de cadeia, mas não muito explícito. Isso foi corrigido em versões posteriores Delphi assim que AnsiStringpayloads agora contêm a página de códigos OS real que é determinada em tempo de execução.

Respondeu 06/07/2012 em 16:46
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more