Acentuação em banco de dados / PHP x Harbour
Moderador: Moderadores
Acentuação em banco de dados / PHP x Harbour
Pessoal, sempre tenho problema com acentuação em banco de dados. Preciso de ajuda, por favor.
O maior problema é que uso, ao mesmo tempo, PHP e Harbour, consultando a mesma tabela.
Preciso de uma forma que me permita usar a mesma tabela no PHP e no Harbour, sem problema de acentuação.
Veja o exemplo do anexo. Mostro como aparece no HeidiSQL, no PHP e no Harbour.
Esta tabela está com colação "latin1_swedish_ci", mas já tentei de outras formas também.
Alguém pode me ajudar?
O maior problema é que uso, ao mesmo tempo, PHP e Harbour, consultando a mesma tabela.
Preciso de uma forma que me permita usar a mesma tabela no PHP e no Harbour, sem problema de acentuação.
Veja o exemplo do anexo. Mostro como aparece no HeidiSQL, no PHP e no Harbour.
Esta tabela está com colação "latin1_swedish_ci", mas já tentei de outras formas também.
Alguém pode me ajudar?
- Anexos
-
- Acentuação - HeidiSQL.png (6.91 KiB) Exibido 8818 vezes
-
- Acentuação - PHP.png (7.41 KiB) Exibido 8818 vezes
-
- Acentuação - Harbour.png (6.72 KiB) Exibido 8818 vezes
Inacio de Carvalho Neto
Acentuação em banco de dados / PHP x Harbour
Pessoal, sempre tenho problema com acentuação em banco de dados. Preciso de ajuda, por favor.
O maior problema é que uso, ao mesmo tempo, PHP e Harbour, consultando a mesma tabela.
Preciso de uma forma que me permita usar a mesma tabela no PHP e no Harbour, sem problema de acentuação.
Veja o exemplo do anexo. Mostro como aparece no HeidiSQL, no PHP e no Harbour.
Esta tabela está com colação "latin1_swedish_ci", mas já tentei de outras formas também.
Alguém pode me ajudar?
O maior problema é que uso, ao mesmo tempo, PHP e Harbour, consultando a mesma tabela.
Preciso de uma forma que me permita usar a mesma tabela no PHP e no Harbour, sem problema de acentuação.
Veja o exemplo do anexo. Mostro como aparece no HeidiSQL, no PHP e no Harbour.
Esta tabela está com colação "latin1_swedish_ci", mas já tentei de outras formas também.
Alguém pode me ajudar?
- Anexos
-
- Acentuação - HeidiSQL.png (6.91 KiB) Exibido 8874 vezes
-
- Acentuação - PHP.png (7.41 KiB) Exibido 8874 vezes
-
- Acentuação - Harbour.png (6.72 KiB) Exibido 8874 vezes
Inacio de Carvalho Neto
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Acentuação em banco de dados / PHP x Harbour
Acho que só você mesmo.
PHP deve ter codepage.
Página de internet tem codepage.
O MySQL tem codepage.
A conexão com MySQL também tem codepage.
Verifique cada um.
Talvez no google encontre resposta.
Quando precisei pro meu site, pesquisa no google resolveu.
Mas não uso php nele.
isso não tem a ver diretamente com harbour, tem a ver com toda configuração e uso de tudo isso.
php usa o que ? pode configurar como o que ? pode alterar conexão para o que ?
e a página de internet que usa o php ? pode configurar como o que ?
NÃO É PRA POSTAR A RESPOSTA A ESSAS PERGUNTAS, não mexo com isso.
É pra você mesmo pesquisar sobre o assunto.
tem o google, tem a inteligência artificial, o bing com IA, etc.
PHP deve ter codepage.
Página de internet tem codepage.
O MySQL tem codepage.
A conexão com MySQL também tem codepage.
Verifique cada um.
Talvez no google encontre resposta.
Quando precisei pro meu site, pesquisa no google resolveu.
Mas não uso php nele.
isso não tem a ver diretamente com harbour, tem a ver com toda configuração e uso de tudo isso.
php usa o que ? pode configurar como o que ? pode alterar conexão para o que ?
e a página de internet que usa o php ? pode configurar como o que ?
NÃO É PRA POSTAR A RESPOSTA A ESSAS PERGUNTAS, não mexo com isso.
É pra você mesmo pesquisar sobre o assunto.
tem o google, tem a inteligência artificial, o bing com IA, etc.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Acentuação em banco de dados / PHP x Harbour
Olha aí uma pergunta no bing do windows 10.
Faça isso.
bing do windows, bing da internet, chatGPT, google, etc.
Faça isso.
bing do windows, bing da internet, chatGPT, google, etc.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
Acentuação em banco de dados / PHP x Harbour
cjp escreveu:Pessoal, sempre tenho problema com acentuação em banco de dados.
Sim, tudo tem CodePage, mas CodePage é Codepage. E sim, é difícil dar uma dica de "pronto", mas vamos tentar passo-a-passo que quem sabe, talvez...JoséQuintas escreveu:PHP deve ter codepage.
Página de internet tem codepage.
O MySQL tem codepage.
A conexão com MySQL também tem codepage.
Inácio, primeira coisa é você informar qual a CodePage você usa no Harbour hoje. Isso porque penso que se você usar a Windows 1252 para todos, incluse e principalmente em seu Harbour, elas ficam compátiveis em qualquer lugar.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Acentuação em banco de dados / PHP x Harbour
Se por Codepage vocês estiverem falando do código da página do Notepad++, onde escrevo os programas (tanto para o Harbour quanto para o PHP), embora eu não entenda muito disso, mas sempre usei OEM850 para o Harbour e o UTF-8 para o PHP.
Não faço ideia do porquê dessa diferença.
Seria essa diferença a causa do problema? É o caso de passar a mesma Codepage nos dois? Neste caso, qual das duas é recomendável? Ou nenhuma delas?
Não faço ideia do porquê dessa diferença.
Seria essa diferença a causa do problema? É o caso de passar a mesma Codepage nos dois? Neste caso, qual das duas é recomendável? Ou nenhuma delas?
Inacio de Carvalho Neto
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Acentuação em banco de dados / PHP x Harbour
codepage do código fonte é apenas codepage do código fonte.
DE NOVO:
Tem a codepage DO CÓDIGO FONTE
Tem a codepage DA TELA DO APLICATIVO
Tem a codepage DA IMPRESSORA
Tem a codepage DO WINDOWS
Tem a codepage DO HTML
Tem a codepage DA SAÍDA DO PHP, teoricamente HTML
Tem a codepage DA CONEXÃO COM O BANCO
Tem a codepage DO BANCO DE DADOS
Tem a codepage DO PDF
Cada uma faz a sua parte, cada uma precisa saber o formato que entra e o formato que sai, com conversão dependendo do caso.
O que precisa fazer é analisar todo conjunto, pra ver o que vai poder/preferir fazer pra dar menos trabalho.
Como configura cada uma ? não sei
Dá pra deixar tudo igual ? não sei
Precisa converter codepage ? não sei
Tem função de conversão em cada um dos usos ? não sei
Por isso vai ter que pesquisar cada uma, fazer testes pra ver se o resultado é o esperado, etc.
Eu ACHO - NÃO SEI - que a conexão do MySQL poderia resolver tudo, já que o problema que mencionou é sobre o MySQL.
DE NOVO:
Tem a codepage DO CÓDIGO FONTE
Tem a codepage DA TELA DO APLICATIVO
Tem a codepage DA IMPRESSORA
Tem a codepage DO WINDOWS
Tem a codepage DO HTML
Tem a codepage DA SAÍDA DO PHP, teoricamente HTML
Tem a codepage DA CONEXÃO COM O BANCO
Tem a codepage DO BANCO DE DADOS
Tem a codepage DO PDF
Cada uma faz a sua parte, cada uma precisa saber o formato que entra e o formato que sai, com conversão dependendo do caso.
O que precisa fazer é analisar todo conjunto, pra ver o que vai poder/preferir fazer pra dar menos trabalho.
Como configura cada uma ? não sei
Dá pra deixar tudo igual ? não sei
Precisa converter codepage ? não sei
Tem função de conversão em cada um dos usos ? não sei
Por isso vai ter que pesquisar cada uma, fazer testes pra ver se o resultado é o esperado, etc.
Eu ACHO - NÃO SEI - que a conexão do MySQL poderia resolver tudo, já que o problema que mencionou é sobre o MySQL.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Acentuação em banco de dados / PHP x Harbour
Bom dia, como eu de praxe em HARBOUR já gravo sem acentuaCAO, passar para mysql foi muito tranquilo nessa parte. Uma dica seria vc criar uma ferramenta em Harbour retirando todos os acentos da base DBF, e nos fontes mesmo que o usuário acentue vc retira antes de gravar. Argumentei com os usuários que era uma exigência da Sefaz que não aceita caracteres especiais na geração do xml, dava alguns rejeições nesse sentido ai trabalhei essa.
T+
HASA
T+
HASA
Acentuação em banco de dados / PHP x Harbour
Se vc migrar tudo para utf8 os seus problemas vão se reduzir substancialmente. Isso porque o utf8 se consolidou como padrão mundial. Isso não quer dizer que as outras codificações não devam ser usadas. Se vc tem um sistema que roda a vários anos então migrar tudo para utf8 é trabalhoso e talvez não compense o esforço. Mas se vc vai começar do zero ou se possui um sistema pequeno e uma base de dados simples, é melhor migrar para utf8.
Acentuação em banco de dados / PHP x Harbour
Para usar utf8 vc deve:
1) ter um editor com suporte a utf8. Sugiro o Vscode e a extensão de Antonino Pericone.
2) no Harbour selecione utf8. O utf8 já vem incluso no Harbour juntamente com o Pt850. O pt850 é o do Clipper e é o padrão. Então no início do seu programa faça hb_cdpselect("utf8") não faça utf8ex, apenas utf8.
3) finalmente o seu banco de dados utf8.
4) agora a parte realmente trabalhosa: nas funções que envolvem tamanho de strings substitua pelo equivalente em utf8. Len() deve ser trocada por hb_utf8Len(), por exemplo. Substr() troque por hb_utf8Substr() e assim sucessivamente. Consulte hbmk2 fundo utf8 para ter a lista das funções utf8. Nem todas envolvem strings.
1) ter um editor com suporte a utf8. Sugiro o Vscode e a extensão de Antonino Pericone.
2) no Harbour selecione utf8. O utf8 já vem incluso no Harbour juntamente com o Pt850. O pt850 é o do Clipper e é o padrão. Então no início do seu programa faça hb_cdpselect("utf8") não faça utf8ex, apenas utf8.
3) finalmente o seu banco de dados utf8.
4) agora a parte realmente trabalhosa: nas funções que envolvem tamanho de strings substitua pelo equivalente em utf8. Len() deve ser trocada por hb_utf8Len(), por exemplo. Substr() troque por hb_utf8Substr() e assim sucessivamente. Consulte hbmk2 fundo utf8 para ter a lista das funções utf8. Nem todas envolvem strings.
Acentuação em banco de dados / PHP x Harbour
Se vc não quer utf8 vc pode configurar o Harbour para PTISO e o editor para Ansi e o banco para iso-8859-1.
Eu disse vc pode. Não vc deve. Faça testes. Crie uma aplicação simples para testes. Uma agenda por exemplo.
Eu disse vc pode. Não vc deve. Faça testes. Crie uma aplicação simples para testes. Uma agenda por exemplo.
Acentuação em banco de dados / PHP x Harbour
O que escrevi no post anterior eu não tenho certeza. Com certeza tem gente que pode lhe ajudar. Isso porque eu abandonei essas codificações há mais de dez anos. Eu uso Harbour no meu trabalho na criação de Scripts. Eu só uso utf8.
Acentuação em banco de dados / PHP x Harbour
Agora o uso de várias codificações nas empresas é algo normal. Não tem como fugir disso. Fatalmente o seu sistema vai precisar conversar com outro sistema em outro padrão. Eu defendo o utf8 para tudo só se vc puder. E mesmo que vc porte tudo para utf8 vai precisar um dia conversar com um sistema externo que use ansi ou cp850.
Acentuação em banco de dados / PHP x Harbour
O Harbour tem tb a função hb_translate que converte uma string em uma codepage em outra. Faz uma busca no Google por Harbour hb_translate...


