Saltar al contenido

PHP + SQL Server – ¿Cómo configurar el juego de caracteres para la conexión?

Hacemos una verificación completa cada sección de nuestra página web con la meta de enseñarte siempre la información con la mayor veracidad y actualizada.

Solución:

El conjunto de caracteres del cliente es necesario pero no suficiente:

ini_set('mssql.charset', 'UTF-8');

Busqué durante dos días cómo insertar datos UTF-8 (desde formularios web) en MSSQL 2008 a través de PHP. Leí en todas partes que no puede, primero debe convertir a UCS2 (como recomienda la solución de cypher). En Windows, se dice que SQLSRV es una buena solución, que no pude probar, ya que estoy desarrollando en Mac OSX.

Sin embargo, el manual de FreeTDS (lo que usa PHP mssql en OSX) dice que agregue una letra “N” antes de la cita de apertura:

mssql_query("INSERT INTO table (nvarcharField) VALUES (N'űáúőűá球最大的采购批发平台')", +xon);

De acuerdo con esta discusión, el carácter N le dice al servidor que se convierta a Unicode. https://softwareengineering.stackexchange.com/questions/155859/why-do-we-need-to-put-n-before-strings-in-microsoft-sql-server

yo tenia el mismo problema y ini_set('mssql.charset', 'utf-8') no funcionó para mí. Sin embargo, funcionó en mayúsculas:

ini_set('mssql.charset', 'UTF-8');

Sugiero mirar los siguientes puntos:

  1. Asegúrese de que las columnas en las que está almacenando la información estén nchar o nvarchar como char y nvarchar no son compatibles UCS-2 (SQLServer no almacena en formato UTF-8 por cierto)
  2. Si se está conectando con la biblioteca/extensión mssql para PHP, ejecute: ini_set('mssql.charset', 'utf-8'); ya que no hay función con un argumento charset (conectar, consultar etc.)
  3. Asegúrese de que el conjunto de caracteres de su navegador también esté configurado para UTF-8

Te mostramos comentarios y valoraciones

Al final de la página puedes encontrar las referencias de otros desarrolladores, tú además eres capaz insertar el tuyo si dominas el tema.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *