Mysql ν•œκ΅­μ–΄ encoding

Mysqlκ³Ό ν•œκΈ€μ„ 같이 μ‚¬μš©ν–ˆμ„λ•Œμ˜ λΆˆνŽΈν•¨

June 27, 2024 β€’ Code

νŒŒμΌμ„ μ €μž₯ν• λ•Œ 무쑰건 UTF-8 포멧으둜 μ €μž₯을 ν•˜λŠ”κ²Œ μ’‹μŒ.

ν•œκ΅­μ–΄ 파일 μ €μž₯μ‹œ 파일λͺ…이 UTF-8이 μ•„λ‹Œ Unicode NFD λ²„μ „μœΌλ‘œ μ €μž₯이 λœλ‹€κ³  함 (commonly used in macOS filesystem). 좔후에 ν•œκ΅­μ–΄ 검색을 해도 맀칭이 λ˜μ§€ μ•ŠμŒ.

μ˜ˆμ‹œ:

    $file = $request->file('uploads');
    $originalFileName = $file->getClientOriginalName();
    
    // Convert the filename to UTF-8 encoding
    /// ν•œκ΅­μ–΄ κ²€μƒ‰μ‹œ 파일λͺ…이 UTF-8이 μ•„λ‹Œ Unicode NFD λ²„μ „μœΌλ‘œ μ €μž₯이 λœλ‹€κ³  함 (commonly used in macOS filesystem).
    /// 좔후에 ν•œκ΅­μ–΄ 검색을 해도 맀칭이 λ˜μ§€ μ•ŠμŒ.
    if (class_exists('Normalizer') && Normalizer::isNormalized($originalFileName, Normalizer::FORM_C) === false) {
      $fileName = Normalizer::normalize($originalFileName, Normalizer::FORM_C);
    } else {
      $fileName = $originalFileName;
    }

    $fileSize = $file->getSize();

    $log = MasterRightsUploadLogs::create([
      'file_name' => $fileName,
      'file_size' => $fileSize,
      'user_id' => auth()->user()->id,
      'status' => 'processing',
    ]);

Invely's