Nombres de archivo de Mac mal en Windows por USB: solución
Si ves los nombres de archivo de Mac mal en Windows después de copiarlos a un pendrive o a un disco externo, el archivo está bien y el pendrive también. Lo que ocurre es que el nombre está guardado con una "ortografía" Unicode distinta (NFD) de la que Windows espera (NFC). Los nombres en coreano se deshacen en letras sueltas, los kana japoneses pierden el dakuten, y las tildes y la eñe de nombres como Peña o José dejan de coincidir en el buscador del Explorador. La solución es renombrar los archivos a la forma compuesta, y se puede hacer desde Windows con un bucle corto de PowerShell, desde el Mac con un script pequeño de Python, o arrastrando los archivos a una herramienta del navegador como FilenameFixer. Los pasos de las tres opciones están más abajo.
Por qué los nombres de archivo de Mac se ven mal en Windows cuando viajan en un pendrive
Un pendrive que ambos equipos pueden leer suele estar formateado en exFAT o FAT32. Ninguno de esos sistemas de archivos modifica los nombres que escribes en él: guardan exactamente la secuencia de caracteres Unicode que les entrega el sistema operativo. Y ahí está todo el problema: macOS y Windows entregan secuencias distintas para el mismo nombre visible.
Unicode tiene dos maneras de escribir muchos caracteres:
- Compuesta (NFC):
ñes un solo punto de código.가es un solo punto de código. - Descompuesta (NFD):
ñes unanseguida de una virgulilla combinante.가es la consonanteㄱseguida de la vocalㅏ.
macOS produce con frecuencia la forma descompuesta cuando pones nombre a un archivo en el Finder o guardas desde una app de Mac. Windows, los formularios web y la mayoría de servidores esperan la forma compuesta. Cuando el pendrive llega a un PC con Windows, el Explorador muestra lo que le han dado, y el resultado es este:
보고서.docxde un compañero coreano se convierte enㅂㅗㄱㅗㅅㅓ.docx, o en una mezcla de sílabas enteras y letras sueltas.がくせい.pdfde un contacto japonés aparece comoか゛くせい.pdf, con la marca de sonorización flotando al lado del kana.Contrato_Peña.pdfparece normal, pero si escribesPeñaen el cuadro de búsqueda del Explorador no aparece nada, y algunos programas se niegan a abrirlo o importarlo.
No hay nada dañado. Cada byte del contenido está intacto. Solo el nombre está escrito de una manera que Windows no reconoce como igual al nombre que tú tecleas.
Esto es distinto de los problemas clásicos con pendrives (un disco que en el Mac es de solo lectura porque está en NTFS, o un archivo de 4 GB que no se deja copiar a FAT32). Si los archivos se copian y se abren pero los nombres se ven raros, estás ante un problema de normalización, no de formato.
Comprobación rápida: ¿es realmente un problema de normalización?
Antes de renombrar nada, confirma la causa. En el PC con Windows, abre PowerShell en la carpeta del pendrive y ejecuta:
Get-ChildItem -File | ForEach-Object {
[PSCustomObject]@{
Name = $_.Name
Length = $_.Name.Length
NFC = $_.Name.Normalize([Text.NormalizationForm]::FormC).Length
}
}
Si la columna Length es mayor que la columna NFC para un archivo, ese nombre contiene caracteres descompuestos. José_Peña.pdf mostrará 15 caracteres tal como está guardado pero 13 en NFC; un nombre coreano de cinco sílabas puede mostrar 12 o más. Cualquier fila en la que los dos números coincidan ya está bien y no hay que tocarla.
Arreglarlo desde Windows (gratis, sin instalar nada)
Es la vía más práctica cuando el pendrive ya está en manos del cliente o del compañero y esa persona usa Windows. Todo ocurre en el propio pendrive, así que el Mac no interviene para nada.
- Conecta el pendrive y abre la carpeta en el Explorador de archivos.
- Haz clic en la barra de direcciones, escribe
powershelly pulsa Intro. Se abre una ventana de PowerShell situada en esa carpeta. - Pega lo siguiente y pulsa Intro:
Get-ChildItem -Recurse |
Sort-Object { $_.FullName.Length } -Descending |
ForEach-Object {
$nfc = $_.Name.Normalize([Text.NormalizationForm]::FormC)
if ($nfc -ne $_.Name) {
Rename-Item -LiteralPath $_.FullName -NewName $nfc
Write-Host "renombrado: $nfc"
}
}
Qué hace: recorre todos los archivos y carpetas del pendrive, empezando por las rutas más profundas para que las carpetas se renombren después de su contenido, convierte cada nombre a NFC y lo renombra solo si el nombre cambia de verdad. Los nombres que ya están compuestos se dejan como están. El parámetro -LiteralPath es importante porque algunos de los nombres rotos contienen caracteres que PowerShell interpretaría como comodines.
- Pulsa F5 en el Explorador. Los nombres en coreano y japonés deberían leerse bien, y al buscar
Peñael archivo debería aparecer.
Límites que conviene conocer:
- Si una carpeta ya contiene una versión NFD y otra NFC del mismo nombre, el renombrado fallará para esa pareja con un error de "el archivo ya existe". Tendrás que decidir a mano con qué copia te quedas.
- Los archivos abiertos en otro programa no se pueden renombrar. Cierra antes Word, Excel, Photoshop y similares.
- Esto solo arregla las copias del pendrive. Los originales del Mac siguen con nombres descompuestos, así que la próxima entrega tendrá el mismo problema si no lo corriges en el origen.
Arreglarlo desde el Mac antes de entregar el pendrive
Si eres la persona del Mac y entregas archivos en pendrive con regularidad, es mejor corregir los nombres antes de que el disco salga de tu mesa. El Finder no tiene ningún ajuste para esto, pero unas pocas líneas de Python lo resuelven. Python 3 viene con las Xcode Command Line Tools; si al escribir python3 --version en Terminal aparece un número de versión, ya lo tienes.
- Copia los archivos al pendrive como siempre.
- Abre Terminal y ejecuta lo siguiente, sustituyendo
MIPENDRIVEpor el nombre del disco tal como aparece en el escritorio:
python3 - <<'EOF'
import os, unicodedata
root_dir = '/Volumes/MIPENDRIVE'
for root, dirs, files in os.walk(root_dir, topdown=False):
for name in files + dirs:
fixed = unicodedata.normalize('NFC', name)
if fixed != name:
os.rename(os.path.join(root, name), os.path.join(root, fixed))
print('renombrado:', fixed)
EOF
- Expulsa el pendrive y, si puedes, compruébalo en un PC con Windows. Los nombres deberían verse y buscarse correctamente.
Dos cosas que conviene saber. Primero, este script solo cambia la secuencia de caracteres guardada; en el Mac los nombres se verán idénticos antes y después, lo cual es normal. Segundo, si un archivo se renombra a la forma compuesta y más tarde una app de Mac lo edita y lo vuelve a guardar con el mismo nombre, algunas apps escribirán otra vez la forma descompuesta, así que ejecuta el script justo antes de entregar el pendrive y no días antes.
Si prefieres no usar la terminal
FilenameFixer hace la misma conversión en el navegador. Arrastra los archivos desde el pendrive a la página y los renombra en lote de NFD a NFC; no se sube nada, porque los nombres se procesan localmente en tu navegador. Cubre el caso de las letras coreanas separadas, el del dakuten japonés y el de las tildes y la eñe partidas. Es gratis y funciona en Chrome, Edge, Safari o Firefox, en cualquiera de los dos equipos.
Si la entrega es un único archivo ZIP en lugar de archivos sueltos, el ZIP lleva dentro los mismos nombres descompuestos, y Windows los extraerá rotos. La herramienta para restaurar nombres dentro de un ZIP reescribe los nombres dentro del archivo comprimido (hasta 200 MB) para que quien lo recibe obtenga nombres limpios al descomprimir, sin ejecutar nada.
Cómo evitarlo en la próxima entrega
Unos cuantos hábitos eliminan el problema de raíz, estés en el lado que estés del intercambio:
- Acordad una convención de nombres para las entregas a clientes. Para archivos que se vayan a importar en otro sistema (un programa de contabilidad, un CMS, un catálogo de fotos), los nombres en ASCII puro como
contrato-pena-2026-10.pdfesquivan la normalización y una docena de problemas de codificación de golpe. Deja el nombre legible con tildes, en coreano o en japonés dentro del documento o en una nota adjunta. - Normaliza justo antes de expulsar. Ejecuta el fragmento de Python o arrastra la carpeta a la herramienta del navegador como último paso, cuando ya no quede nada por editar.
- Ten a mano el script de comprobación en Windows. El fragmento que compara longitudes tarda segundos y te dice al momento si un pendrive que viene de un Mac necesita arreglo, antes de que alguien empiece a importar archivos a un sistema que los rechazará sin avisar.
- No formatees el pendrive esperando que ayude. NTFS, exFAT y FAT32 guardan los nombres tal cual los reciben. Formatear no cambia nada en la normalización; solo renombrar lo hace.
Una vez que los nombres están compuestos, el buscador de Windows los encuentra, las importaciones funcionan, y la persona al otro lado nunca tiene que ver ㅎㅏㄴㄱㅡㄹ donde debería poner 한글, ni Pen~a donde debería poner Peña.