- /* Get a new conversion descriptor */
- ucs2_conversion_descriptor = iconv_open("UCS-2BE", "UTF-8");
- if (ucs2_conversion_descriptor == (iconv_t)-1)
+ /* Get a new conversion descriptor. //IGNORE is a GNU suffix that makes
+ * iconv to silently discard characters that cannot be represented in
+ * the target character set. */
+ ucs2_conversion_descriptor = iconv_open("UCS-2BE//IGNORE", "UTF-8");
+ if (ucs2_conversion_descriptor == (iconv_t)-1) {
+ ucs2_conversion_descriptor = iconv_open("UCS-2BE", "UTF-8");
+ }
+ if (ucs2_conversion_descriptor == (iconv_t)-1) {