Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Leguim en 19 Julio 2019, 01:16 am



Título: [Pregunta]: ¿Por donde empezar?
Publicado por: Leguim en 19 Julio 2019, 01:16 am
Hola, quería saber si me podrían decir por donde debo empezar para aprender sobre cotejamientos, latin, utf8 y todo ese choclo que personalmente pienso que lo crearon para dar dolor de cabeza a los desarrolladores..

Ahora tengo que usar en algunas funciones PHP mb_ (multibyte) y eso no me gusta nada...
Gracias!


Título: Re: [Pregunta]: ¿Por donde empezar?
Publicado por: @XSStringManolo en 19 Julio 2019, 02:35 am
Puff dímelo a mi que básicamente el 95% de software que hago es de criptografía. Por ejemplo convertir a y desde utf-8 usando wide characters en C++ con windows api es un asco...

Te puedes referir a "todo eso" como codificación de caracteres.

Al trabajar con utf8 el tamaño de memoria utilizado para representar cada caracter es mayor que con la codificación estandar. En estos casos por experiencia e varios lenguajes lo mejor es trabajar con la codificación estandar y al final del todo transformar a utf-8. Es lo más sencillo. Puedes trabajar con números directamente que hagan referencia a los caracteres y hacer un mini programa para mostrar esos números en distintas codificaciones. Al final de tu programa simplemente cambias el número y te olvidas de rollos.

Prueba a convertir con esta función:
 http://www.w3api.com/wiki/PHP:Mb_convert_case#Lineas_de_C.C3.B3digo

En el caso que de verdad necesites procesar cadenas con carácteres en otros idioma como ruso, japones, etc por poner un ejemplo, entonces sí tendrás que trabajar en muchos casos obligatoriamente con multibyte.
 https://www.sitepoint.com/working-with-multibyte-strings/

Ahí tienes una explicación básica que puedes extender en la documentación oficial de php.

Wikipedia codificación:
 https://es.m.wikipedia.org/wiki/Codificaci%C3%B3n_de_caracteres

Un poco de teoría:
 https://www.smashingmagazine.com/2012/06/all-about-unicode-utf8-character-sets/

Probemas típicos del encoding:
 https://flaviocopes.com/javascript-unicode/

Ejemplos de otros usos:
 https://www.adilbo.com/encoder/

 https://www.w3schools.com/jsref/jsref_encodeuri.asp

 https://blog.malwarebytes.com/cybercrime/2014/01/the-rtlo-method/


Título: Re: [Pregunta]: ¿Por donde empezar?
Publicado por: WHK en 19 Julio 2019, 03:30 am
Hola, depende de tu proyecto, si ya está hecho deberás hacer correcciones de contenido, pero si estás comenzando de cero te recomiendo lo siguiente:

En la base de datos, las tablas y la misma base de datos deben estar creadas con codificación utf8_general_ci (siempre y cuando sea mysql o mariadb).

La conexión a la base de datos debes indicar que la transferencia de información viajará en utf8.

Cada archivo que escribas en php debe estar guardado con la codificación de utf8, te recomiendo utilizar sublime text.

Cada contenido expulsado debe contener una cabecera http que indique que el tipo de contenido será en utf8, ya sea json o html.

Cada contenido HTML debe contar con la etiqueta meta en el head que indique que el tipo de codificación de contenido será utf8.

Si te aseguras que todo se use de manera estricta en utf8 jamás tendrás problemas de compatibilidad.

Saludos.


Título: Re: [Pregunta]: ¿Por donde empezar?
Publicado por: Leguim en 19 Julio 2019, 05:45 am
¡Muchas gracias a los dos por tomarse el tiempo de responder a mi pregunta y por toda la información que me dieron. Voy a poner todo en práctica a ver que tal...! Mil gracias...