The project is now hosted at GitHub. https://github.com/nemtrif/utfcpp
There will probably be some time before the first 3.x release is ready, but I just committed the first change today. 3.x will be a C++ 11 library and there is a break in API compatibility. If you want to propose features, please create a "Feature ticket". At this point, my plan is to keep the entire library in a single header file. Still looking for the best way of enabling support for different levels of error checking. ... read more
Released a minor bug-fix version 2.3.4 over the weekend.
Version 2.3.3 I released on Saturday contained a needless limitation for utf8_to_* functions, so I removed it altogether.
I released version 2.3.2. It contains some minor bug fixes and performance improvements. I have also somewhat refactored the internal code. Enjoy.
I have just released the version 2.3 of the UTF8 CPP library. It is a feature release, and the features were added at users' request. A big thank you for all who suggested new features and reported bugs!
My plan is to focus on performance improvements in the next release, unless new bugs are reported in the meantime.
I have just released version 2.2.4 of the UTF-CPP library.
It is a minor bug fix release that addresses the last of the invalid UTF-16 detection problems reported by Ivan Sorokin. It took me a little more to fix this one because it reproduces only with the Microsoft's compiler, which comes with checked Standard Library.
Hopefully, the next release will be a feature release. Also, I am investigating a possibility of opening a separate branch that would take advantage of new C++0x Unicode support.
I released version 2.2.3 tonight. It is a bug fix release, initiated by reports submitted by Ivan Sorokin. Basically, there was a problem in detecting invalid utf-16 sequences when converting utf-16 encoded strings to utf-8.
Another fix is very minor and consists of removing a redundant check for invalid code point.
A feature request for adding a safe version of is_bom() has not been addressed in this release. I am still considering it.... read more
A bug-fix release. Takes care of a linker error when using utf-8 cpp in multiple cpp files
I just release the version 2.2.1. It is a minor release that takes care of a bogus GCC 4.3 warning.
Version 2.2 is out.
The most exciting aspect of it is the ablity to work with input iterators on some of the functions and thus read text directly from a file without buffering.
Also, I renamed an internal enum to avoid name clashes with macros from other libraries.
This weekend I have released version 2.1 of the library. It has only one additional feature - the function peek_next() that does not move the iterator to the next position, and can work with a constant iterator.
Currently, I don't plan to add peek_next to the v1 branch; if you would like to see it there, please submit a feature request.
At this point I don't have plans for major new features, but will take care that the library works with new versions of the two comilers I currently support: Microsoft and GNU. It would be nice to extend the support to other compilers and platforms (Sun, Digital Mars, Borland, etc.) and any help with this would be welcome.
It is my pleasure to announce the release of version 2.0 of the library. It now offers more features and more possibilities for fine-tuning and picking only the parts you want to use. Pleas see the release notes for more details.
Along with 2.0 Beta, here is release 1.03, which contains pretty much only one minor bug fix.
Once again, I want to underline that the branch 1.x is going to be fully supported even after 2.0 Final is released.
This weekend, I have released the first beta release of the 2.x branch.
The major changes from the 1.x branch are the inclusion of the iterator adapter, function replace_invalid() and a reorganization of source files. The backward compatibility is preserved.
Last night I released the version 1.02. It addresses the issue described in the bug report "[ 1599048 ] utf8::previous doesn't play well with Standard containers"
In short, utf8::previous is deprecated in favor of utf8::prior which does pretty much the same thing but the boundary is set to the beginning of the sequence rather than to "before the beginning". Please note that utf8::previous is *not* going to be removed from the library - I am very serious about backward compatibility.
Today, I released version 1.01 of the library. This release includes a fix for the bug 1583547 (exception::what() is constant).
Thanks to the user who reported this issue.
This weekend, I am starting work on version 2 of the library. Planned new features are functions to replace invalid UTF-8 sequences with a replacement marker and iterator adapters (see Feature request tracker for details) and possibly some work on the exception classes.
Be aware that version 1 is going to be activelly supported. I don't plan to add many features to it (trying to keep it stable :) ) but if any bug pops up, I'll do my best to fix it.
It is my pleasure to announce that the first production release is ready to be downloaded.
At this point I have not finalized the plans for the next version. However, I will continue supporting version 1.0 - if you run into bugs or have performance related suggestions, please let me know.
Nemanja Trifunovic
I hoped the next release would be a RC, but found a critical bug with encoding some 3-bytes code points and thiss release includes a fix for that.
Release Beta 2 is ready. It contains the fixes for the bugs found during testing of Beta1 and some changes in internal organization of the code.
The plans for RC1 are to focus on performance, and also broaden the scope of testing.
I have just released the first Beta version of the library. All the functionallity planned for the Final 1.0 release is in place - only bug fixes and performance improvements may be added at this point.