Mark Leicester said: [...]
I'm using cvs 4.6 for this site. If the original email was iso-8859-1, then can just call drupal_convert_to_utf8($node->body, "ISO-8859-1")? It doesn't seem to be working for me: I get an empty string back. I'll double check.
That probably means that your PHP install doesn't support any of the functions drupal_convert_to_utf8() supports. For a 4.5.2 project, I'm using the following function based on drupal_convert_to_utf8(): // everything needs to be in UTF-8 function utf8_me($data, $encoding = "ISO-8859-1") { if (function_exists('iconv')) { $out = @iconv($encoding, 'utf-8', $data); } else if (function_exists('mb_convert_encoding')) { $out = @mb_convert_encoding($data, 'utf-8', $encoding); } else if (function_exists('recode_string')) { $out = @recode_string($encoding . '..utf-8', $data); } else if ((function_exists('utf8_encode')) && ($encoding == "ISO-8859-1")) { $out = @utf8_encode($data); } return $out; } It has an added check for utf8_encode(), a standard PHP function. Unfortunately, utf8_encode() only works with ISO-8859-1. I can roll a patch for drupal_convert_to_utf8() if anyone wants this is core. -- Tim Altman