elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  [Resuelto] PDO OCI Acentos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Resuelto] PDO OCI Acentos  (Leído 3,952 veces)
ZeroVzla

Desconectado Desconectado

Mensajes: 71


Ver Perfil
[Resuelto] PDO OCI Acentos
« en: 27 Febrero 2015, 21:33 pm »

Buen día,

Tengo problemas con los acentos y caracteres especiales como la ñ usando PDO_OCI. El ambiente es un servidor debian, nginx y php como cgi. Ya intente colocando el charset en la conexión: UTF-8, AL32UTF8. Si alguien me puede guiar al menos lo agradecería.

Saludos!.


« Última modificación: 10 Marzo 2015, 12:41 pm por #!drvy » En línea

ZeroVzla

Desconectado Desconectado

Mensajes: 71


Ver Perfil
Re: PDO OCI Acentos
« Respuesta #1 en: 6 Marzo 2015, 03:35 am »

Buen día a todos,

Pues hoy resolví el tema y quería compartir con ustedes la solución, así si alguno tienen el mismo problema no tiene que pasar una semana trastabillando en miles de foros así que sencillo:

En mi caso, y como expliqué con anterioridad, el php está instalado como FastCGI pero es llamado PHP-FPM (FastCGI Process Manager), lo indico ya que les ayudará en un futuro a buscar sobre problemas. Así pues, resulta que las configuraciones como el NLS_LANG, LD_LIBRARY_PATH, NLS_DATE_FORMAT etc.. no las toma de las variables de entorno del usuario que lo ejecuta (hablando en linux), en vez, la toma de su archivo de configuración llamado php-fpm.conf, lo que quiere decir que para setear dichas variables de entorno deberán colocar en el archivo mencionado una línea por cada variable tal cual el siguiente ejemplo:

env[NLS_LANG] = AMERICAN_AMERICA.AL32UTF8

Así que exportar las variables o setearlas en los .profile de los usuarios no servirá de mucho.

Luego lo que resta es reiniciar el php.

Adjunto el archivo en donde se explica todo sobre la instalación, bien sea con php como modulo de apache o como fpm y la integración con oracle.

http://www.oracle.com/technetwork/database/database-technologies/php/201212-ug-php-oracle-1884760.pdf

En particular revisar las páginas 78 (php como modulo de apache, en la cual indican que deben setear las variables al arrancar el server, y la página 84 en donde explican lo que comento en el post.

Me gustaría terminar con una nota que colocan en el archivo para que ni siquiera intenten usar putenv() en éste caso.

Note: Do not set Oracle environment variables in PHP scripts with putenv(). The web server
may load Oracle libraries and initialize Oracle data structures before running your script. With
persistent connections the environment from one script may affect subsequent scripts. Using
putenv() causes hard to track errors as the behavior is not consistent for all variables, web
servers, operating systems, or OCI8 functions.

Saludos


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
acentos en un bat
Scripting
sexto 4 25,351 Último mensaje 6 Agosto 2007, 11:59 am
por Meta
Acentos en bat
Scripting
carlosguay 4 5,363 Último mensaje 19 Noviembre 2009, 12:00 pm
por carlosguay
{RESUELTO} ¿Cómo redimensiono un jPanel? {RESUELTO} « 1 2 »
Java
|Miguel| 12 10,620 Último mensaje 13 Febrero 2012, 15:11 pm
por |Miguel|
[RESUELTO] No consigo limpiar un JTable... [RESUELTO]
Java
|Miguel| 2 29,264 Último mensaje 12 Febrero 2018, 09:06 am
por shoni_isra
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines