Código: Selecionar todos
hb_cdpIsUTF8( Memoread( cFile ) )
Moderador: Moderadores
Código: Selecionar todos
hb_cdpIsUTF8( Memoread( cFile ) )
Código: Selecionar todos
Hb_cdpIsUTF8( cCodePageID )Com toda Razão! Somente no domingo percebi quanta "bobagem" falei, e que quem não tinha entendido a mensagem era eu. Fiz tamanha confusão, que nem de lapso posso chamar, acho que foi uma parada cardíaca mesmo. Não atentei naquele momento o que você dizia. Como não tem emoticon de alguém enfiando uma lata de lixo na cabeça, vai este mesmo:Pablo César - Em 27 Out 2012 escreveu:Entendi nada ! Nem da causa do seu riso nem a explicação.
Código: Selecionar todos
#include <hmg.ch>
REQUEST HB_CODEPAGE_PTISO
REQUEST HB_CODEPAGE_PT850
Function Main()
Local aText:={}, cMsg:="", i //, crlf:=Chr( 13) + Chr( 10 )
SET LANGUAGE TO PORTUGUESE
SET CODEPAGE TO PORTUGUESE
Aadd(aText,"ANSI - Relatório de comissões no mês de [?]")
Aadd(aText,"OEM - Relat¢rio de comissäes no mˆs de [?]")
Aadd(aText,"UTF-8 - Relatório de comissΣes no mês de [?]")
Aadd(aText,"FREE - Relatorio de comissoes no mes de [?]")
For i=1 to 4
If IsAnsi(aText[i])
cMsg:=cMsg+"É ANSI: "+aText[i]+CRLF
Else
cMsg:=cMsg+"NÃO é ANSI: "+aText[i]+CRLF
Endif
If IsOem(aText[i])
cMsg:=cMsg+"É OEM: "+aText[i]+CRLF
Else
cMsg:=cMsg+"NÃO é OEM: "+aText[i]+CRLF
Endif
If IsUtf8(aText[i])
cMsg:=cMsg+"É UTF-8: "+aText[i]+CRLF
Else
cMsg:=cMsg+"NÃO é UTF-8: "+aText[i]+CRLF
Endif
cMsg:=cMsg+CRLF
Next
MsgInfo(cMsg)
Return
FuncTion IsUtf8( cString )
Local i, cIdUtf := Chr( 195 )
Local aUtf := { 129, 130, 131, 132, 135, 137, 138, 141, 147, 148, ;
149, 150, 154, 156, 160, 161, 163, 162, 164, 167, ;
169, 170, 173, 179, 180, 181, 182, 186, 188 }
For i = 1 To Len( aUtf )
If At( cIdUtf + Chr( aUtf[ i ] ), cString ) > 0
Return ( .T. )
Endi
Next
Return ( .F. )
Function IsAnsi( cString )
Local i, aAnsi := { 196, 193, 194, 195, 201, 202, 205, 211, 212, 213, ;
218, 220, 225, 227, 231, 234, 237, 243, 244, 245, ;
246, 250, 252 }
For i = 1 To Len( aAnsi )
If At( Chr( aAnsi[ i ] ), cString ) > 0 .And. !IsUtf8( cString )
Return ( .T. )
Endi
Next
Return ( .F. )
Function IsOem( cString )
Local i, aOem := { 128, 129, 130, 131, 132, 133, 135, 136, 142, 144, ;
147, 148, 153, 154, 160, 161, 162, 163, 181, 182, ;
198, 229, 210 }
For i = 1 To Len( aOem )
If At( Chr( aOem[ i ] ), cString ) > 0 .And. !IsUtf8( cString )
Return ( .T. )
Endi
Next
Return ( .F. )