tagsinput tag multiple bootstrap php mysql character-encoding

php - multiple - tags input js



¿Necesito usar entidades HTML al almacenar datos en la base de datos? (3)

Necesito almacenar caracteres especiales y símbolos en la base de datos mysql. Entonces, o puedo almacenarlo, ya que es como ''ü'' o convertirlo a código html como ''& uuml;''

No estoy seguro de cuál sería mejor.

También tengo símbolos como ''♥'', ''"''.

Por favor, sugiérame cuál es mejor? También sugiera si hay algún método alternativo.

Gracias.


Deje sus datos sin procesar en la base de datos. No use entidades HTML para esto hasta que los necesite para HTML. Nunca se sabe cuándo es posible que desee utilizar sus datos en otro lugar, no en una página web.


Las entidades HTML se han introducido hace años para transportar información de caracteres a través del cable cuando el transporte no era binario seguro y para el caso de que el usuario-agente (navegador) no admitiera la codificación del juego de caracteres de la capa de transporte o el servidor.

Como una entidad HTML contiene solo caracteres muy básicos ( & , ; , az y 0-9 ) y esos caracteres tienen la misma codificación binaria en la mayoría de los conjuntos de caracteres, esto es y estaba muy a salvo de esos efectos secundarios.

Sin embargo, cuando almacena algo en la base de datos, no tiene estos problemas porque normalmente tiene el control y sabe qué y cómo puede almacenar texto en la base de datos.

Por ejemplo, si permite que Unicode ingrese texto dentro de la base de datos, puede almacenar todos los caracteres, ninguno es realmente especial. Tenga en cuenta que necesita conocer su base de datos aquí, hay algunos detalles técnicos que puede encontrar. Como si no conociera la codificación del juego de caracteres para la conexión de su base de datos, por lo que no puede decir exactamente a su base de datos qué texto desea almacenar allí. Pero, en general, solo almacena el texto y lo recupera más tarde. Nada especial para tratar.

De hecho, hay inconvenientes cuando utiliza entidades HTML en lugar del carácter simple:

  • Las entidades HTML consumen más espacio: ü es mucho más grande que ü en LATIN-1, UTF-8, UTF-16 o UTF-32.
  • Las entidades HTML necesitan procesamiento adicional. Deben crearse y, cuando se lean, deben analizarse. Imagine que necesita buscar un texto específico en su base de datos, o cualquier otra acción necesitaría un manejo adicional. Eso es solo por encima.

La verdadera diversión comienza cuando mezclas ambos conceptos. Llegas a un lugar en el que realmente no quieres entrar. Entonces no lo hagas porque no vas a necesitarlo.


Mi sugerencia reflejaría los otros contribuyentes, no convierta las entidades especiales al guardarlas en su base de datos.

Algunas razones contra la conversión:

  • Principio de KISS (mi mayor razón para no hacerlo)
  • la mayoría de las entidades terminarán consumiendo más espacio antes de convertirse
  • perder la capacidad de buscar las entidades ü en una palabra, sería [word]+ü+[/word] , y tendría que hacer una comparación de cadenas del equivalente html de ü => [word]+ü+[/word]
  • su salida puede cambiar de HTML para decir una API para dispositivos móviles, etc. lo que hace que la conversión sea innecesaria.
  • necesidad de convertir en la entrada de datos, y en la salida (de nuevo si su salida cambia de HTML simple a otra cosa).