Swift Package Index


A Swift wrapper around the `uchardet` library to detect the character encoding of a sequence of bytes.


  • The latest stable release is 1.0.0. Released 10 months ago.
  • The last commit to master was 9 months ago.

Swift Version Compatibility

  • 1.0.0 and master
    5.3
    5.2
    5.1
    5.0
    4.2
Full build results

Platform Compatibility

  • 1.0.0 and master
    iOS
    macOS(Intel)
    macOS(ARM)
    Linux
    tvOS
    watchOS
Full build results

UniversalCharsetDetection

A Swift wrapper around the uchardet library to detect the character encoding of a sequence of bytes.

uchardet is more versatile than NSString.stringEncoding(for:encodingOptions:convertedString:usedLossyConversion:) because

  • it supports many more encodings;
  • it supports streaming large files; and
  • its output is compatible with iconv.

Usage

Compatible with Swift 4.2+.

  • To integrate the library into your project, add a dependency on this package in your project’s Swift Package Manager configuration file or in your Xcode 11+ project.
  • To detect the character encoding of a file, see CharacterEncodingDetector+File.
  • To detect the character encoding of a collection of bytes, see DataProtocol+CharacterEncoding.
  • To detect the character encoding of a manually-provided stream of bytes, see CharacterEncodingDetector.

License

See the LICENSE.md file.

Contributing

Since the Swift Package Manager does not yet support binary dependencies, we copy the uchardet source code into the Sources/Cuchardet directory to enable the Swift Package Manager to build and link with the uchardet library. See the adapt-uchardet-to-swiftpm script.

To change the version of the uchardet library, run the following commands in the root of the source code directory tree:

$ git init uchardet
$ git submodule update --remote uchardet
$ cd uchardet
$ git checkout <master or tag name>
$ cd ..
$ ./adapt-uchardet-to-swiftpm