NFCFS

Introduction

NFCFS stands for "NFC File System", and it is an attempt to address a problem with international characters in file names on Mac OS. In the Unicode standard, a given character or sequence of characters can be represented in many different ways. This is a problem in some situations, for instance in file names. In general, Mac OS uses a different representation than most other operating systems, such as Windows and Linux.

This means that programs originally written for Windows or Linux that have been ported to Mac OS might not correctly handle the Mac OS file names. The NFCFS project exists to provide a workaround for that particular problem.

At the moment, the following applications have been tested with NFCFS and work better with it than without it:

Important note: NFCFS is provided as is. Use it at your own risk! It is not very well tested, you should not trust it with critical data.

On Unicode

Unicode is a huge standard attempting to standardize all the characters in all the written languages of Earth. When writing programs that work with Unicode, some special considerations have to be taken.

For example, a given character string can have many equivalent representations. Take the letter ö for example, which can be represented using the Unicode character LATIN SMALL LETTER O WITH DIAERESIS (U+00F6), or it can be represented using the letter o followed by the character COMBINING DIARESIS (U+0308).

A well written program will take this into consideration when comparing two strings to see if they are equal.

How NFCFS works

NFCFS provides a different view of the files in the files on the system. When an application looks at a file or directory through NFCFS, everything will be the same as when accessing the files directly, except that all file names will be in "Normalization Form Canonical Composition", NFC. This is what application originally written for Windows or Linux most often expects.

NFCS is a file system that can be mounted at a location in the directory tree and that provides its alternative view of another location in the directory tree.

NFCFS is built on the loopback file system provided with the MacFuse implementation of Fuse.

Click on the "Example" link in the navigation bar to the left for an example of how to run NFCFS.

Building NFCFS

If you want to build NFCFS yourself, it should be easy. You need MacFuse and xcode installed. Download the source distribution and unpack it, type make in the src directory.