Tengo un sitio de preparación de Rails que se ejecuta en MySQL 5.0.32-Debian.UTF8 Problemas de MySQL en Rails: problemas de codificación con utf8_general_ci
En este sitio en particular, todas mis tablas están utilizando la codificación utf8/utf8_general_ci
.
Dentro de esa base de datos, tengo algunos datos que se ve así:
mysql> select * from currency_types limit 1,10;
+------+-----------------+---------+
| code | name | symbol |
+------+-----------------+---------+
| CAD | Canadian Dollar | $ |
| CNY | Chinese Yuan | å…ƒ |
| EUR | Euro | € |
| GBP | Pound | £ |
| INR | Indian Rupees | ₨ |
| JPY | Yen | ¥ |
| MXN | Mexican Peso | $ |
| USD | US Dollar | $ |
| PHP | Philippine Peso | ₱ |
| DKK | Denmark Kroner | kr |
+------+-----------------+---------+
Aquí está el problema que estoy teniendo
En puesta en escena (con el PP y el sitio de rieles que se ejecuta en el debian cuadro), los caracteres de los símbolos aparecen correctamente cuando se muestran desde los rieles. Por ejemplo, el Yuan chino aparece como 元 en mi navegador, no å ... ƒ como se ve dentro de la base de datos.
Cuando descargo esos datos a mi máquina de desarrollo local OS X y ejecuto localmente el DB y los Rails, veo la representación desde el DB (å ... ƒ) en mi navegador, no el carácter 元 como veo en la puesta en escena .
depuración que he hecho
He aseguró que todos los encabezados de Content-Type están regresando como UTF-8 de cada servidor web (local, puesta en escena).
Mi servidor mysql local y el servidor de transferencia están configurados para usar utf8 como el juego de caracteres predeterminado. Estoy usando "nombres de conjunto 'utf8'" antes de hacer cualquier llamada.
Incluso puedo conectarme a mi base de almacenamiento por defecto desde mi host OS X Rails, y todavía veo los caracteres å ... ƒ que representan el yuan. Supongo que entonces, tal vez haya un problema con mi cliente local de MySQL, pero no puedo entender cuál es el problema.
Tal vez esto podría dar una idea
para que sea aún más confuso, si me pega el carácter 元 en el db en mi máquina local, veo que en la multa navegador web. --- AUN SI PEGO EL MISMO CARACTER EN MI DB DE ESCENOGRAFIA, OBTENGO UN? marca en su lugar en la página de mi sitio de Rails de ensayo.
Además, localmente en mi máquina de raíles OS X si utilizo "set names 'latin1'" antes de mis consultas, todos los caracteres vuelven correctamente. Ya tenía estas tablas configuradas como latin1 antes: ¿podría ser este el problema?
Alguien ayúdeme por favor aquí, me estoy volviendo loca tratando de descubrir qué pasa!
Sí, ese es el problema. pero cuando estableces tu conexión a latin1 parece normal porque hace la misma traducción. Tuve este problema pero no pude volver a crear la base de datos.Así que cambié phpMyAdmin para usar una conexión latin1, luego exporté (por lo que los datos exportados ahora eran correctos), luego eliminé ese hack y reimporté. Datos corregidos. Detalles aquí: http://omegadelta.net/2010/11/23/when-you-thought-the-db-was-utf-8-but-it-wasnt/ –
¡Gracias! ¡Estaba rascándome la cabeza bastante esta mañana y esta resultó ser la solución para una base de datos creada antes de mi tiempo! – Cymen
El usuario de Windows que solo recibe mensajes de 'acceso denegado', debe cambiar ** DBNAME.sql ** a **% homepath% \ DBNAME.sql ** para las llamadas mysqldump y mysql. ¡Y gracias a Subimage! –