0

O que preciso configurar para que eu consiga inserir dados com caracteres especiais como acentos no Oracle?

criado por Reinaldo Martinez Cabral em 29/11/2002 5:41am
Nenhuma descrição foi enviada.

Lista de Respostas:

0
01/12/2002 11:37am
(~21 anos atrás)
Caio Filipini respondeu:
Reinaldo,

Não tenho certeza, mas no livro de Oracle que tenho aqui, os exemplos tratam de strings contendo caracteres especiais, acentos, etc..., mas na criação da tabela não há nenhuma configuração específica. Acredito que, como no MySQL, os caracteres especiais são aceitos normalmente.

Valeu!
Caio Filipini

0
03/12/2002 7:45am
(~21 anos atrás)
Ai Reinaldo,

Tenta isso aqui!!!

Tipo a sua string é :

E aí beleza? "Eu acho que não vai dar"

Isso vai dar erro quando passar para o Oracle!!!! Quer dizer, no MySql dá pau, mas eu acho que é a mesma coisa. O que você pode fazer, é usar a função addslashes para os campos que tenham caractéres especiais.

Quando você usa addslaches na string acima ela fica assim:

E aí beleza? \"Eu acho que não vai dar\"

Eu acho que isso está acontecendo porque vc tem um textarea ou um input type="text" em um formulário que vai ser processado. E nesses campos a galera coloca caractéres que são especiais. Usando a função addslashes vc resolve o problema.

Ex: Vc tem um textarea com o nome descricao que foi submetido com vários '\' ou '"' ou outros caractéres especiais. Na página que vc vai inserir o dado na tabela, em vez de referenciar o nome do textarea($descricao), use:

addslashes($descricao)

Bem, espero que esse seja o seu problema, se não for, viajei, mas pelo menos vc tem uma função nova engatilhada.


0
03/12/2002 11:50am
(~21 anos atrás)
Galera Obrigado pela ajuda!!

Mas o que tenho é um simples insert assim: INSERT INTO tipos ( tip_s_apl ,tip_a_des) values ( 'C' ,'SÃO PAULO')

Que quando mando gravar no oracle ele substitui o SÃO por SCO.

Pelo que andei pesquisando o problema está em configurar o oracle com o NLS_LANG correto mas até agora não consegui nada!

Se alguém puder me ajudar!!

Se conseguir achar a solução postarei aqui nessa faq!

Att.

R. Cabral

0
10/11/2003 1:13pm
(~20 anos atrás)
Victor Henrique respondeu:
Você pode usar, via PHP, a função htmlentities(), que fará com que os caracteres especiais e acentuados virem os respectivos códigos HTML. Assim que você for retornar para uma página HTML eles serão exibidos da mesma maneira como foram cadastrados pois o browser os decodifica.
Para jogar os caracteres de volta em um campo de formulário utilize uma função personalizada para reverter o htmlentities() para poder exibi-los corretamente.

<?php
function unhtmlentities ($string)
{
$trans_tbl = get_html_translation_table (HTML_ENTITIES);
$trans_tbl = array_flip ($trans_tbl);
return strtr ($string, $trans_tbl);
}
?>

Esta função foi retirada do manual do PHP.

0
10/11/2003 1:15pm
(~20 anos atrás)
Victor Henrique respondeu:
Utilize htmlentities().
Assim os caracteres serão inseridos corretamente no banco e no browser. Para que não aconteçam erros ao re-formatar os dados para exibi-los em formulário utilize uma função reversa.

// inicio da função que reverte htmlentities()
function unhtmlentities ($string)
{
$trans_tbl = get_html_translation_table (HTML_ENTITIES);
$trans_tbl = array_flip ($trans_tbl);
return strtr ($string, $trans_tbl);
}
// fim da função

retirei a função do manual do PHP e espero que seja útil.
Esta é apenas uma dica, pois acredito que essa seja a melhor forma de corrigir seu problema, a princípio.

Nova Resposta:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)