{"id":42914495,"url":"https://github.com/mixcode/normalize-unicode-filename","last_synced_at":"2026-01-30T17:04:20.401Z","repository":{"id":260426517,"uuid":"881264281","full_name":"mixcode/normalize-unicode-filename","owner":"mixcode","description":"A command-line utility to rename files in Unicode normalized form","archived":false,"fork":false,"pushed_at":"2025-03-12T12:30:32.000Z","size":8,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-12T13:29:49.140Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mixcode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-31T08:15:12.000Z","updated_at":"2025-03-12T12:30:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"5d553830-211b-4ce3-93ba-6bbe968a376d","html_url":"https://github.com/mixcode/normalize-unicode-filename","commit_stats":null,"previous_names":["mixcode/normalize-unicode-filename"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/mixcode/normalize-unicode-filename","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mixcode%2Fnormalize-unicode-filename","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mixcode%2Fnormalize-unicode-filename/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mixcode%2Fnormalize-unicode-filename/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mixcode%2Fnormalize-unicode-filename/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mixcode","download_url":"https://codeload.github.com/mixcode/normalize-unicode-filename/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mixcode%2Fnormalize-unicode-filename/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28915942,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-30T16:37:38.804Z","status":"ssl_error","status_checked_at":"2026-01-30T16:37:37.878Z","response_time":66,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-30T17:04:14.393Z","updated_at":"2026-01-30T17:04:20.393Z","avatar_url":"https://github.com/mixcode.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n## normalize-unicode-filename: utility to rename files in Unicode normalized form\n\n\nSome Unicode characters can be represented by different combinations of code points. For example, the e-acute character 'é' can be represented either in a composed form, '\\u00e9', or a decomposed form, 'e\\u0301'. These forms are theoretically equivalent, but they may lead to differences in actual usage. For instance, macOS typically uses the NFD (decomposed) form for filenames, while Windows generally uses the NFC (composed) form. Due to this discrepancy, filenames can appear completely different across operating systems.\n\nThis program renames filenames to their normalized Unicode forms to account for these differences.\n\n\n### Install\n\n```\n$ go install github.com/mixcode/normalize-unicode-filename@latest\n```\n\n### Usage\n\n```\nUsage: normalize-unicode-filename [option] filename [filename...]\n\n  -b\tshorthand for '-both'\n  -both\n    \tprint both original and changed filename\n  -d\tshorthand for '-dryrun'\n  -dryrun\n    \tdry-run: do not change file name; print only\n  -f string\n    \tshorthand for '-form'\n  -form string\n    \tUnicode normalization type. One of NFC, NFD, NFKC, NFKD,\n    \tor WIN, MAC\n  -q\tquiet; do not print filenames\n  -r\trecurse subdirectories\n```\n\n### Examples\n\nChange filenames in the current directory for the current OS.\nIf the current os is MacOS, then the default form will be NFD, otherwise NFC.\n```\n$ normalize-unicode-filename *\n```\n\nChange filenames to explicit Windows-friendly form.\n```\n$ normalize-unicode-filename -form=win *\n```\n\nChange filenames to macOS-friendly form, recursively renaming files in its subdirectories.\n```\n$ normalize-unicode-filename -form=mac -r *\n```\n\nPrint possible filenames for NFKD form, without changing filenames.\n```\n$ normalize-unicode-filename -form=NFKD -r -dryrun -both *\n```\n\n### Memo\n\nPlease note that NFKC and NFKD may cause irreversible changes. Be careful to using them.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmixcode%2Fnormalize-unicode-filename","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmixcode%2Fnormalize-unicode-filename","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmixcode%2Fnormalize-unicode-filename/lists"}