Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

379
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!