¿ESTABLECER NOMBRES utf8 en MySQL?

Resuelto JasonDavis asked hace 54 años • 8 respuestas

A menudo veo algo similar a esto a continuación en scripts PHP que usan MySQL

query("SET NAMES utf8");   

Nunca he tenido que hacer esto para ningún proyecto todavía, así que tengo un par de preguntas básicas al respecto.

  1. ¿Es esto algo que se hace sólo con DOP?
  2. Si no es una DOP específica, ¿cuál es el propósito de hacerlo? Me doy cuenta de que está configurando la codificación para MySQL, pero quiero decir, nunca he tenido que usarlo, así que ¿por qué querría usarlo?
JasonDavis avatar Jan 01 '70 08:01 JasonDavis
Aceptado

Es necesario siempre que desee enviar datos al servidor que tengan caracteres que no se pueden representar en ASCII puro, como 'ñ' o 'ö'.

Eso si la instancia de MySQL no está configurada para esperar codificación UTF-8 de forma predeterminada desde las conexiones del cliente (muchas lo están, dependiendo de su ubicación y plataforma).

Lea http://www.joelonsoftware.com/articles/Unicode.html en caso de que no sepa cómo funciona Unicode.

Lea Si se debe utilizar "SET NAMES" para ver las alternativas de SET NAMES y de qué se trata exactamente.

Vinko Vrsalovic avatar Jan 29 '2010 02:01 Vinko Vrsalovic

Del manual :

SET NAMES indica qué juego de caracteres utilizará el cliente para enviar declaraciones SQL al servidor.

Más elaborado (y una vez más, extraído gratuitamente del manual ):

SET NAMES indica qué juego de caracteres utilizará el cliente para enviar declaraciones SQL al servidor. Por lo tanto, SET NAMES 'cp1251' le dice al servidor que "los futuros mensajes entrantes de este cliente están en el juego de caracteres cp1251". También especifica el juego de caracteres que el servidor debe utilizar para enviar resultados al cliente. (Por ejemplo, indica qué juego de caracteres usar para los valores de columna si usa una instrucción SELECT).

karim79 avatar Jan 29 '2010 02:01 karim79