Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

377
Vistas
La carga de archivos PHP con nombre de archivo japonés se convierte en un nombre de archivo dañado en DB

Tengo un punto final de API REST que le permite cargar un archivo en el servidor. Cuando guardo un archivo que se nombra usando el alfabeto latino, no hay problema. Pero cuando trato de guardar un archivo que tiene un carácter japonés, el archivo se guarda y el nombre del archivo en el servidor está bien, pero cuando miro en la base de datos, el nombre del archivo no es correcto.

El resultado en mi base de datos al guardar el archivo:

phpMyAdmin muestra un conjunto de filas con texto de caracteres sin sentido

Pero cuando miro el shell del servidor, el nombre del archivo es correcto:

PuTTY muestra un nombre de archivo UTF-8 adecuado con Hiragana en un shell

Intenté cambiar la intercalación de la base de datos en:

  • utf8mb4_unicode_ci
  • utf8
  • utf8_general_ci ... pero el problema persiste.

Actualización: Esta es mi consulta para insertar los datos:

 public function setFileQuery($param,$file){ $this->module_id = $param['moduleid']; $this->file_name = $file['name']; $this->file_size = $file['size']; $q = "INSERT INTO data_file (module_id,file_name,file_size,start_time,end_time,elapse_time,through_put) VALUES (?,?,?,?,?,?,?)"; $insertStmt = $this->conn->prepare($q); $insertStmt->execute([ $this->module_id, $this->file_name, $this->file_size, null, null, null, null, ]); Responses::http_ok(); }
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

  1. Primero, la intercalación de la tabla debe configurarse como utf8mb4 .

  2. En segundo lugar, asegúrese de que las intercalaciones del campo de datos (también conocido como columna) también sean utf8mb4 .

  3. Ahora puede insertar datos (por ejemplo, a través de phpMyAdmin o a través de cualquier script PHP ):

    • phpMyAdmin : phpMyAdmin INSERT consulta con Hiragana literal

    • PHP :

      • Si está utilizando PDO , asegúrese de haber configurado el conjunto de caracteres en su conexión, como:
         $conn = new PDO("mysql:host=$host;dbname=$db;charset=utf8mb4", $user, $pass);
      • Si está utilizando MySQLi :
         $conn = mysqli_connect($servername, $username, $password, $dbname); /* change character set to utf8mb4 */ mysqli_set_charset($conn,"utf8mb4"); $mysqli->query("set names utf8mb4");

      ... y luego ejecutar la consulta, es decir:

       mysqli_query( "INSERT INTO song( songname ) VALUES( 'あああ.txt' )" );
  4. El resultado será el deseado: phpMyAdmin mostrando un conjunto de filas con texto Hiragana

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda