VBA - Função ConvertUTF8 - Converte os Dados Contidos na Célula no Padrão UTF8

VBA - Função ConvertUTF8 - Converte os Dados Contidos na Célula no Padrão UTF8


O UTF-8 foi criado por Ken Thompson no dia 2 de setembro de 1992, num restaurante de Nova Jersey, juntamente com Rob Pike. No dia seguinte, Pike e Thompson implementaram-no e atualizaram o seu sistema operacional Plan 9 para passar a usá-lo.

UTF-8 foi anunciado formalmente numa conferência USENIX em San Diego, que decorreu de 25 a 29 de janeiro de 1993.

As especificações da Microsoft para o Cab (MS Cabinet) de 1996 aceitam o uso de strings codificadas com o UTF-8 (apesar de ter sido lançado antes de o UTF-8 ter um padrão estabelecido), mas nunca chegou a ser implementado.

Quando desejamos deixar nossos dados corretos, sem caracteres esquisitos, tudo no padrão que conhecemos (UTF8), a função abaixo será muito útil.


Function ConvertUTF8 (ByVal txtFrase1 As String)

    '      Author: André Bernardes

    '        Date: 09.08.21 - 05:01

    ' Description: Converte caracteres ASCII no padrão UTF8.

    

    Dim i As Long

    Dim nUTF8 As String

    Dim iChr As Integer

    Dim iChr2 As Integer

    

    For i = 1 To Len(txtFrase1)

        iChr = Asc(Mid(txtFrase1, l, 1))

        

        If iChr > 127 Then

            If Not iChr And 32 Then

                Let iChr2 = Asc(Mid(txtFrase1, l + 1, 1))

                Let nUTF8 = nUTF8 & ChrW$(((31 And iChr) * 64 + (63 And iChr2)))

                Let i = l + 1

            Else

                Dim iChr3 As Integer

            

                Let iChr2 = Asc(Mid(txtFrase1, l + 1, 1))

                Let iChr3 = Asc(Mid(txtFrase1, l + 2, 1))

                Let nUTF8 = nUTF8 & ChrW$(((iChr And 15) * 16 * 256) + ((iChr2 And 63) * 64) + (iChr3 And 63))

                Let i = l + 2

            End If

        Else

            Let nUTF8 = nUTF8 & Chr$(iChr)

        End If

    Next l

    

    Let ConvertUTF8 = nUTF8

End Function


UTF-8 (8-bit Unicode Transformation Format) é um tipo de codificação binária (Unicode) de comprimento variável criado por Ken Thompson e Rob Pike. Pode representar qualquer caractere universal padrão do Unicode, sendo também compatível com o ASCII. Por esta razão, está lentamente a ser adaptado como tipo de codificação padrão para e-mail, páginas web, e outros locais onde os caracteres são armazenados.

UTF-8 usa de um a quatro bytes (estritamente, octetos) por caractere, dependendo do símbolo Unicode que representa. É necessário apenas um byte para codificar os 128 caracteres ASCII (Unicode U+0000 a U+007F). São necessários dois bytes para caracteres Latinos com diacríticos. São também usados dois bytes para representar caracteres dos alfabetos Grego, Cirílico, Armênio, Hebraico, Sírio e Thaana (Unicode U+0080 a U+07FF). São necessários três bytes para o resto do Plano Multilingual Básico (que contém praticamente todos os caracteres comuns utilizados). Existem ainda outros caracteres que necessitam de quatro bytes.

Quatro bytes pode parecer muito para um caractere ("code point"), mas muito raramente são utilizados. Além disso, UTF-16 (a principal alternativa ao UTF-8) necessita também de quatro bytes para estes "code points". A definição de qual dos dois é mais eficiente (UTF-8 ou UTF-16) depende da variedade de "code points" usados. Contudo, as diferenças entre os vários tipos de codificação tornam-se irrelevantes com o uso de sistemas de compressão como o DEFLATE. Para textos curtos nos quais os tradicionais algoritmos não funcionam bem e se faz necessário ter o tamanho em consideração, é geralmente usado o Esquema Padrão de Compressão para Unicode (Standard Compression Scheme for Unicode).

O "Internet Engineering Task Force" (IETF) requer que todos os protocolos utilizados na Internet suportem, pelo menos, o UTF-8. O "Internet Mail Consortium" (IMC) recomenda que todos os clientes de e-mail consigam ler e criar mails usando o UTF-8.


Veja outros códigos:

VBA Excel | Extraindo a Data de uma Célula com Data e Horário - Remove Date from Date and Time VBA Excel | Converta Tudo para Maiúscula - Convert to Upper CaseVBA Excel | Contando Palavras na Planilha - Word Count from Entire Worksheet VBA Excel | Removendo Decimais dos Números - Remove Decimals from Numbers

VBA Excel |  Multiplique todos os Valores por um Número - Multiply all the Values by a Number VBA Excel | Calculando a Raiz Cúbica - Calculate the Cube Root

VBA Excel | Adicionando Letras de A até Z - Add A-Z Alphabets in a Range VBA Excel | Convertendo Numerais Romanos em Arábicos - Convert Roman Numbers into Arabic Numbers

VBA Excel | Converta todos os Números Negativos em Positivos - Remove Negative Signs VBA Excel | Preencha com zeros as Células em Branco - Replace Blank Cells with Zeros

Leia também:

eBook: Série DONUT PROJECT 2015: Projetos e Códigos de Visual Basic for Applications - Autor: André Luiz Bernardes  eBook: Série Top 10 Funções: Top 10 Funções VBA para o Microsoft Excel - Autor: André Luiz Bernardes

eBook: Série Funções Poderosas: 13 Funções Poderosas no MS Excel - Autor: André Luiz Bernardes  eBook: Série Visual Basic For Application: Criando Logs de acesso: Dicas e Códigos de Visual Basic for Applications - Autor: André Luiz Bernardes

eBook: Série VBA Tips: Rastrei seus Dashboards, Scorecards, Reports, Relatórios, Planilhas e Aplicações - Dicas e Códigos - Autor: André Luiz Bernardes  eBook: Série Data Science: Big Data, Como? - Autor: André Luiz Bernardes

eBook: Série Smarter Analytic: 5 Previsões de Big Data - Autor: André Luiz Bernardes


Conheça também:

DONUT PROJECT 2021 - VBA Function:  Como Rastrear o Google Maps (Coordenadas Geográficas) no VBA Excel?

DONUT PROJECT 2021 - VBA Function:  Crie Acrônimos a partir de Strings de Texto

DONUT PROJECT 2021 - VBA Function:  Convertendo uma Matrix num Vetor - Convert Matrix to a Vector

DONUT PROJECT 2021 - VBA Function:  Como tornar o Formulário Transparente no MS Excel?

DONUT PROJECT 2021 - VBA Function:  Faça Buscas no Google a Partir da Célula do MS Excel - Search Google From a Cell

DONUT PROJECT 2021 - VBA Function:  Decompondo um Nome nas Dimensões de uma Matriz

DONUT PROJECT 2021 - VBA Function: Extraindo o Último Sobrenome de um Nome Completo ou a Última Palavra de uma Frase

DONUT PROJECT 2021 - VBA Function:  Extraindo o Segundo Nome de um Nome Completo ou a Segunda Palavra de uma Frase

DONUT PROJECT 2021 - VBA Function: Extraindo o Primeiro Nome ou  a Primeira Palavra de uma Frase

Série Piece of Cake

Séries Donut


Comente e compartilhe este artigo!


brazilsalesforceeffectiveness@gmail.com
diHITT - Notícias