Yo uso MySQL para almacenar los datos y las páginas web están todos codificados como UTF-8. Tengo un montón de portugués personajes como ç y õ y me pregunto si debo HTML escapar de ellos, antes de su almacenamiento.

Debemos almacenar & como &, por ejemplo? Y por qué (no)? ¿Cuáles son las ventajas y desventajas /las mejores prácticas?

  • ç y õ son UTF-8 caracteres. Si DB apoya, y sus páginas ya están codificados en UTF-8, entonces ¿por qué convertir?
  • Es porque estoy acostumbrado a leer acerca de escapar de estas cosas que yo pensaba que era una práctica común, al parecer no lo es!
InformationsquelleAutor Mohamad | 2011-01-04

6 Comentarios

  1. 51

    No HTML-codificar los caracteres antes de su almacenamiento. Se debe almacenar como pura forma de sus datos como sea posible. HTML codificación es necesaria porque va a mostrar los datos en una página HTML, para hacer la codificación durante el procesamiento de los datos para crear la página. Por ejemplo, supongamos que usted decide usted también va a enviar los datos en formato de texto y correos electrónicos. Si has codificados en HTML los datos, ahora la codificación HTML es una barrera que hay que deshacer.

    Elegir una forma canónica para sus datos, y de la tienda que. UTF-8 es maravilloso, y su base de datos admite (suponiendo que ha creado todas las tablas correctamente). Sólo tienda UTF-8.

    • Estoy de acuerdo. Este es el equivalente HTML de PHP\’s \»comillas mágicas\» característica. It\’s no es una buena idea, porque no todos los datos que necesita escapar & it\’s molesto para ver escapó de datos donde no debería’t ser.
    • No es el mismo, de la otra manera? Que sin codificar HTML es una barrera cuando se necesita codificado? I. m.o. su más probable es que usted necesita para la salida de HTML codificado. En los pocos casos en que desea es decodificado, se puede decodificar. Es también más seguro cuando un desarrollador se olvida de decodificar de codificar el derecho? Puede haber un montón de lugares que se usan los datos, por lo que el riesgo para un desarrollador olvide de codificación es real.
    • Yo personalmente no creo que hay un HACER o de NO respuesta a esta pregunta. También de acuerdo con @feskr que puede ser más peligroso si nos olvidamos de codificar de decodificar(Si un desarrollador se olvida de decodificar, será capturado durante el desarrollo). De la OMI, sólo se basa en su propio escenario y hacer una llamada si usted necesita para almacenar los datos codificados y más seguro de la cadena de descodificación y cuando sea necesario, o al revés.
  2. 7

    Va por el propósito de la Base de datos, que no es recomendable para HTML codificar y almacenar los datos. Si lo hace, los datos deseables sólo para el renderizado de páginas HTML(el propósito) y para todas las demás operaciones(muchos) que usted necesita para volver a decodificar. Esto degrada la coherencia de los datos(ya que la validez, la precisión, la facilidad de uso son obstaculizados) propiedad de Base de datos.

  3. 2

    ¿Alguna vez se necesita buscar para ellos? Yo no soy un usuario experto, pero puede que tenga que saltar a través de aros para hacer búsquedas.

    Están preocupados por el HTML-dad de los datos o la codificación de caracteres?

    Yo diría que trate de no hacer especial de codificación de caracteres en el DB si se puede evitar. Buscar, tener que recordar especial in-bound/out-bound de procesamiento, etc.

    • gran punto. Yo no había pensado en eso ahora, porque no he implementado búsqueda todavía. Mi software es todavía temprano en el desarrollo. Pero la respuesta es sí, tendré que buscar para ellos. Hace codificación de ellos a causa de los problemas en ese caso? Leyendo tu comentario, supongo que me tendría que codificar los caracteres en la cadena de búsqueda antes de enviar la consulta!
    • Yo creo que es así, e incluso entonces tendrías problemas con ‘cerca de partidos.’ Estoy más familiarizado con SQL Server que tiene el uso de caracteres comodín («me GUSTA» – SQL Estándar?) que podría ser problemático con la codificación.
  4. 2

    Si usted está haciendo 100 o 1000 de la página de presentaciones por cada escritura, entonces la codificación de la forma en que va a ser más eficiente. Pero en la mayoría de las circunstancias, supongo que la diferencia sería insignificante.

    Pero las otras razones (para no codificar) son buenas, no hay duda acerca de eso y de todos modos no tiene sentido para codificar caracteres UTF-8 le gusta.

  5. 2

    Yo diría que la codificación de la manera en la base de datos es en realidad un riesgo para la seguridad, porque significa que presumiblemente no será de codificación entre la base de datos y el navegador (ya que esto podría conducir a una doble codificación). Eso significa que si hay una ruta, ya sea ahora o en el futuro para sin codificar los datos en su base de datos, a continuación, que serán enviados al navegador sin codificar. Mejor para codificar entre la base de datos y el navegador y por lo tanto de la tienda sin codificar en mi humilde opinión.

  6. 1

    Yo no codifican en la base de datos, a menos que exista una clara y definida de valor para hacer eso. Usted (y a nadie más que nunca trabajar con los datos) tendrá que acordarse de la onu-escape cuando el uso de los datos o escapar de todo lo que los datos de insertar, actualizar, o comparar a ese campo. No estoy seguro de lo que el beneficio es para escapar de ella, pero probablemente no vale la pena.

Dejar respuesta

Please enter your comment!
Please enter your name here