[vc_row el_class=”blog-info”][vc_column][vc_single_image source=”featured_image” img_size=”full” style=”vc_box_rounded”][vc_empty_space height=”40px”][vc_row_inner][vc_column_inner width=”1/6″][/vc_column_inner][vc_column_inner width=”2/3″][vc_column_text el_class=”font-weight-bold”]
Cómo usar MariaDB para almacenar texto que contiene emojis en un entorno Node.js
Recientemente cambié de PSQL a MariaDB para hacer uso de la prueba gratuita de 12 meses de Amazon, pero me encontré con un problema relacionado con los emojis. Al instalar MariaDB a través de Homebrew, el juego de caracteres inicial para el sistema será utf8mb3. Este formato no es compatible con emojis, y tratar de usar emojis en cualquier declaración devolverá un error. ¡Pero la esperanza no está perdida!
Hay 3 cosas que debes hacer:
- Actualice los conjuntos de caracteres de su sistema MariaDB
- Formatee correctamente su base de datos/tablas
- Agregue el parámetro charset a su grupo/conexión de MariaDB
[/vc_column_text][vc_empty_space height=”40px”][/vc_column_inner][vc_column_inner width=”1/6″][/vc_column_inner][/vc_row_inner][vc_row_inner][vc_column_inner width=”1/6″][/vc_column_inner][vc_column_inner width=”2/3″][vc_column_text]
Actualice los conjuntos de caracteres de su sistema MariaDB
Para verificar qué conjunto de caracteres está usando su MariaDB, conéctese a su servidor MariaDB como de costumbre…
mysql
Luego ingrese la siguiente declaración…
SHOW VARIABLES LIKE 'char%'; SHOW VARIABLES LIKE 'collation%';
Deberías ver la siguiente tabla:

Ahora, si sus valores son todos utf8mb4 y utf6mb4_unicode_ci (excepto character_sets_dir), la configuración de su sistema está lista. De lo contrario, busque el archivo my.cnf que para mí se encuentra en usr/local/etc/. Luego, actualízalo con el siguiente código:
# # This group is read both by the client and the server # use it for options that affect everything # [client-server] [client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4 [mysqld] character-set-client-handshake = FALSE collation-server = utf8mb4_unicode_ci init-connect = 'SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci' character-set-server = utf8mb4 # # include *.cnf from the config directory # !includedir /usr/local/etc/my.cnf.d
Después de guardar este archivo, la configuración de su sistema MariaDB debe estar configurada correctamente.
Formatee correctamente su base de datos/tablas
Al crear su base de datos en la consola de MariaDB, agregue detalles del juego de caracteres…
CREATE DATABASE your_db CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
Y al hacer sus tablas, agregue detalles del conjunto de caracteres al final de la declaración:
CREATE TABLE things ( internal_thing_id SERIAL PRIMARY KEY, text_with_emojis TEXT ) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
Agregue el parámetro charset a su grupo/conexión de MariaDB
El último paso requiere una pequeña adición en nuestro proyecto Node. Dondequiera que establezca su grupo/conexión de base de datos, agregue charset: “utf8mb4” a la lista de parámetros.
const mariadb = require('mariadb');var pool = mariadb.createPool({ host: "your url", user: "your username", password: "your password", database: "your db", charset: "utf8mb4",});module.exports = pool;
¡Y YA ESTÁ LISTO! 🎉
Por favor comente si tiene algún inconveniente con esto…
[/vc_column_text][/vc_column_inner][vc_column_inner width=”1/6″][/vc_column_inner][/vc_row_inner][/vc_column][/vc_row][vc_row el_class=”social-info”][vc_column width=”1/6″][/vc_column][vc_column width=”2/3″][vc_row_inner][vc_column_inner width=”1/2″][vc_column_text][social_share_button themes=’theme1′][/vc_column_text][/vc_column_inner][vc_column_inner el_class=”youtube-inner-col” width=”1/2″][vc_column_text][likebtn theme=”youtube” lang=”auto” show_like_label=”0″ white_label=”1″ alignment=”right”][/vc_column_text][/vc_column_inner][/vc_row_inner][vc_row_inner el_class=”social-info-inner”][vc_column_inner width=”1/4″][vc_single_image image=”921″][/vc_column_inner][vc_column_inner width=”3/4″][vc_column_text]
Diego Pacheco
Ingeniero en Sitemas, MBA (Babson College). Desarrollador PHP/Java/JavaScript. Fundador & CEO de EpicStudio. Entusiasta de las tecnologías web (JavaScript, Vue, Laravel, AWS, Docker) Viajes, Negocios, Surf y Growth.[/vc_column_text][asvc_list_item icon_fontawesome=”fa fa-calendar-o” icon_size=”14px”]Programar una reunión[/asvc_list_item][/vc_column_inner][/vc_row_inner][/vc_column][vc_column width=”1/6″][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]
Recent Post
[/vc_column_text][lvca_posts_carousel posts_query=”size:3|order_by:rand|post_type:post” image_linkable=”true” image_size=”full” taxonomy_chosen=”post_tag” display_title=”true” display_post_date=”true” display_summary=”true” autoplay_speed=”3000″ animation_speed=”300″ display_columns=”3″ scroll_columns=”3″ gutter=”3″ tablet_display_columns=”2″ tablet_scroll_columns=”2″ tablet_gutter=”3″ tablet_width=”800″ mobile_display_columns=”1″ mobile_scroll_columns=”1″ mobile_gutter=”3″ mobile_width=”480″][vc_empty_space height=”20px”][/vc_column][/vc_row]
