Behdad Esfahbod wrote on 2004-04-07 09:02 UTC: > On Wed, 7 Apr 2004, Michael B Allen wrote: > > AFAICT iconv(3) requires that the length of the input be known in advance. > > This is very unfortunate for zero terminated strings as it requires the > > user inspect the string in an encoding specific way to determine it's > > length. Is there simply no way around this? > > AFAICS it expects the length of the input in bytes, so you simply > pass strlen() for zero-terminated strings.
But strlen() works only for zero-terminated strings in multi-byte encodings. It will fail on wide character encodings such as UTF-16 and UTF-32. And wcslen() is probably also of no help if you have a byte array, not a wchar_t array. On the other hand, I have great difficulty to envision a real-world situation, where the user of iconv - knows that the input is zero terminated - does not know whether this is an 8-bit, 16-bit or 32-bit wide and aligned zero which is the situation it seems to me Michael might refer to. So the question to Michael is: What is the actual problem you want to solve? Markus -- Markus Kuhn, Computer Lab, Univ of Cambridge, GB http://www.cl.cam.ac.uk/~mgk25/ | __oo_O..O_oo__ -- Linux-UTF8: i18n of Linux on all levels Archive: http://mail.nl.linux.org/linux-utf8/