links: |- index -|- home -| end
in page: preamble downloads encodings end
2011-08-04: Converting from one character set to another can be difficult to understand for some - what is a character set? - but 'unix' has addressed this problem strongly. There exist a GNU project - libiconv - which addresses this. Microsoft (MS) address this issue through UNICODE, which works well on most MS windows machines, but is not completely cross-platform.
Just visiting the 'unicode' consortium site in various browsers, in various platforms will often show you the difference. But in general, the web, one way or another, now supports most of the world languages, or more precisely their character sets, and displays them in a 'native' form.
But I wanted to compile this library in WIN32, since several other project I compile needed this library. I chose the last stable source at the time - http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz - circa 30-Jun-2009. I note this source is also now available through an anonymous checkout:
git clone git://git.savannah.gnu.org/libiconv.git [target_directory]
Over the years, I have developed a set of perl scripts, 'amsrcs' - see here - which do SOME of what the unix auto-tools do. That is read the 'configure.ac' file, and then the Makefile.am (or .in) set, to build up the project for MSVC. This 'amsrcs' script set outputs a MSVC6 build file set - a <project>.dsw, pointing the a number of DSP projects files. This can be loaded in just about any version of MSVC, and converted to the format it uses.
Of course these UNIX type sources include (a) a file generated during the auto-tool processing, 'config.h', and (b) several other 'standard' UNIX include headers. So in 'windows' I have hand prepared many of these, so as to avoid, if possible, having to 'amend' the source. Often these are just 'stubs', providing just 'enough' definitions to get the source compiles.
These will be included in the source zips provided. Feel free to replace, or amend these. These are just my 'estimation' of what is needed to successfully compile the source. And the MS runtime libraries chosen for this port is Multithreaded static - that is /MT and /MTd. Always take care to NOT mix runtimes.
As always, source and binaries supplied as is. No warranty for fitness of purpose is implied or intended. To the extent possible this WIN32 port is released under GPL version 2, or later, at your choice.
WARNING: Take care with downloading, and using binaries from the web
libiconf-src-01.zip - Full, modified SOURCE, excluding the 'msvc' folder
libiconf-win-01.zip - The 'msvc' folder, including the MSVC build files, and /MT static libraries in 'msvc/bin'
libiconv-1.13.1.tar.gz - Original source
- Download, and unzip the full source, preserving directories, into a folder of your choice,
but suggest say C:\Projects\libiconv-1.13.1, to show the version.
- In this folder, create a folder 'msvc', like libiconv-1.13.1> md msvc, and then cd msvc
- Download the 'win' zip, and unzip it, preserving directories, in this 'msvc' folder
- Load libiconv.sln (or libiconv.dsw) into your version of MSVC. Allow it to convert to its own format.
- Run MSVC to build all targets.
From its web site, libconv suggests it supports ALL the following encodings, some through UNICODE support -
uint32_t(with machine dependent endianness and alignment)
When configured with the option
--enable-extra-encodings, it also provides support
for a few extra encodings:
It can convert from any of these encodings to any other, through Unicode conversion.