 Applications may avoid such errors by preserving input code points, and only normalizing them to the application's preferred normal form for internal use.Such errors may also be avoided with algorithms normalizing both strings before any binary comparison.However errors due to file name encoding incompatibilities have always existed, due to a lack of minimum set of common specification between software hoped to be inter-operable between various file system drivers, operating systems, network protocols, and thousands of software packages.