Jump to content
Sign in to follow this  
lucasayrton

Converter scripts para utf-8

Recommended Posts

Bom dia pessoal,

Alguém possui algum programa para converter os scripts criados no Scite com encoding "Code Page Property" para UTF-8?
Comecei a utilizar o vscode para a criação dos scripts e preciso converter os códigos antigos.

Agradeço desde já.

Lucas Ayrton.

Share this post


Link to post
Share on other sites

Bom dia @Luigi, realmente da certo e tinha até esquecido dele kkk, porém sabe se existe algum programa para fazer isso em grande quantidade e de uma vez só? tenho em média de uns 400 scripts feitos já e ir mudando de um em um iria ocupar muito do tempo que eu poderia estar automatizando outros testes.

Share this post


Link to post
Share on other sites

Segue...

#include <File.au3>
#include <Array.au3>
#include <FileConstants.au3>

CONVERSOR_ENCODING("C:\Scripts")

Func CONVERSOR_ENCODING ($sPasta, $iENCODING = $FO_UTF8)
   Local $aArquivos = _FileListToArrayRec($sPasta, "*.au3", $FLTAR_FILES, $FLTAR_RECUR, $FLTAR_NOSORT, $FLTAR_FULLPATH)
   If @error Then Return
   ConsoleWrite($sPasta & @CRLF)
   Local $sConteudo, $hArquivo, $nOld_Encoding = -1, $nNew_Encoding = -1, $sAtributos = "", $bMudou_Atributo = False
   For $nArquivo = 1 to $aArquivos[0]
      $bMudou_Atributo = False
      $nOld_Encoding = FileGetEncoding($aArquivos[$nArquivo])
      $sAtributos = FileGetAttrib($aArquivos[$nArquivo])
      If StringInStr($sAtributos, "R") Then
         $bMudou_Atributo = True
         FileSetAttrib($aArquivos[$nArquivo], "-R")
      EndIf
      If $nOld_Encoding = $iENCODING Then
         ConsoleWrite("> ")
      Else
         ConsoleWrite("! ")
         $sConteudo = FileRead($aArquivos[$nArquivo])
         FileDelete($aArquivos[$nArquivo])
         $hArquivo = FileOpen($aArquivos[$nArquivo], $FO_OVERWRITE + $iENCODING)
         ConsoleWrite(FileWrite($hArquivo, $sConteudo) & " ")
         FileClose($hArquivo)
      EndIf
      If $bMudou_Atributo Then FileSetAttrib($aArquivos[$nArquivo], "+R")
      $nNew_Encoding = FileGetEncoding($aArquivos[$nArquivo])
      ConsoleWrite(StringFormat("%-100s", $aArquivos[$nArquivo]) & " = " & NOME_ENCODING($nOld_Encoding) & " => " & NOME_ENCODING($nNew_Encoding) & @CRLF)
   Next
EndFunc   ;==>CONVERSOR_ENCODING

Func NOME_ENCODING ($nCode)
   Local $aNomes = [ [ $FO_UTF16_LE,   "UTF16 Little Endian" ], _
                     [ $FO_UTF16_BE,   "UTF16 Big Endian" ], _
                     [ $FO_UTF8,       "UTF8 (with BOM)" ], _
                     [ $FO_UTF8_NOBOM, "UTF8 (without BOM)" ], _
                     [ $FO_ANSI,       "ANSI (containing char > 127 and < 255)" ] ]
   Local $nPosicao = _ArraySearch($aNomes, $nCode)
   If @error Then Return SetError(1, 0, "NÃO ENCONTRADO")
   Return SetError(0, 0, StringFormat("%40s", $aNomes[$nPosicao][1]))
EndFunc

 

  • Thanks 1
  • Haha 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

×