Salut,
En quel encodage ressort ton texte VB ?
Sinon, en vrac :
- que donnent tes tests ? comment arrives-tu à des caractères type ö alors que toute la saisie est censée être en UTF-8 ?
- pense, pour les caractères spéciaux, à voir si ce qui est saisi fait partie de la table ASCII avec la fonction ord(). Attention à la table ASCII : j'ai cru comprendre que plusieurs trucs cohabitaient, chez moi c'est http://www.ascii-code.com/ qui a fait référence et pas http://www.asciitable.com/ d'ailleurs si qqun a une explication à ce sujet...
- gère la transco en base et pas en dur dans le code PHP, ça permet d'être plus réactif en cas de nouveau pépin, ça m'a coûté 1/2 journée récemment mais après tu auras la PAIX,
- si tes utilisateurs font la saisie via un c/c depuis Word, attention aux caractères très exotiques (mais disponibles dans la table ASCII) comme une right single quote à la place d'une apostrophe
,
PS : ta future bible
http://www.utf8-chartable.de/unicode-utf8-table.pl
PPS : si jamais ça peut te servir, voici ce que j'ai utilisé récemment pour faire de l'encodage ISO => UTF-8 => HTML, ce sont les codes hexa...
colonne 1 : code hexa ISO-8859-1
colonne 2 : code hexa UTF-8
colonne 3 : code décimal HTML
colonne 4 : description
(null, '\x40', '@', 'Arobase')
(null, '\x7e', '~', 'Tilde (equivalency sign)')
('\xc2\x80', '\xe2\x82\xac', '€', 'Euro sign')
('\xc2\x82', '\xe2\x80\x9a', '‚', 'Single low-9 quotation mark')
('\xc2\x83', '\xc6\x92', 'ƒ', 'Latin small letter f with hook')
('\xc2\x84', '\xe2\x80\x9e', '„', 'Double low-9 quotation mark')
('\xc2\x85', '\xe2\x80\xa6', '…', 'Horizontal ellipsis')
('\xc2\x86', '\xe2\x80\xa0', '†', 'Dagger')
('\xc2\x87', '\xe2\x80\xa1', '‡', 'Double dagger')
('\xc2\x88', '\xcb\x86', 'ˆ', 'Modifier letter circumflex accent')
('\xc2\x89', '\xe2\x80\xb1', '‰', 'Per mille sign')
('\xc2\x8a', '\xc5\xa0', 'Š', 'Latin capital letter S with caron')
('\xc2\x8b', '\xe2\x80\xb9', '‹', 'Single left-pointing angle quotation mark')
('\xc2\x8c', '\xc5\x92', 'Œ', 'Latin capital ligature OE')
('\xc2\x8e', '\xc5\xbd', 'Z', 'Latin captial letter Z with caron (non trouvé : transformé en Z classique)')
('\xc2\x91', '\xe2\x80\x98', '‘', 'Left single quotation mark')
('\xc2\x92', '\xe2\x80\x99', '’', 'Right single quotation mark')
('\xc2\x93', '\xe2\x80\x9c', '“', 'Left double quotation mark')
('\xc2\x94', '\xe2\x80\x9d', '”', 'Right double quotation mark')
('\xc2\x95', '\xe2\x80\xa2', '•', 'Bullet')
('\xc2\x96', '\xe2\x80\x93', '–', 'En dash')
('\xc2\x97', '\xe2\x80\x94', '—', 'Em dash')
('\xc2\x98', '\xcb\x9c', '∼', 'Small tilde')
('\xc2\x99', '\xe2\x84\xa2', '™', 'Trade mark sign')
('\xc2\x9a', '\xc5\xa1', 'š', 'Latin small letter S with caron')
('\xc2\x9b', '\xe2\x80\xba', '›', 'Single right-pointing angle quotation mark')
('\xc2\x9c', '\xc5\x93', 'œ', 'Latin small ligature oe')
('\xc2\x9e', '\xc5\xbe', 'z', 'Latin small letter z with caron (non trouvé : transformé en z classique)')
('\xc2\x9f', '\xc5\xb8', 'Ÿ', 'Latin capital letter Y with diaeresis')
(null, '\xc2\xa0', ' ', 'Non-breaking space')
(null, '\xc2\xa1', '¡', 'Inverted exclamation mark')
(null, '\xc2\xa2', '¢', 'Cent sign')
(null, '\xc2\xa3', '£', 'Pound sign')
(null, '\xc2\xa4', '¤', 'Currency sign')
(null, '\xc2\xa5', '¥', 'Yen sign')
(null, '\xc2\xa6', '¦', 'Pipe, Broken vertical bar')
(null, '\xc2\xa7', '§', 'Section sign')
(null, '\xc2\xa8', '¨', 'Spacing diaeresis - umlaut')
(null, '\xc2\xa9', '©', 'Copyright sign')
(null, '\xc2\xaa', 'ª', 'Feminine ordinal indicator')
(null, '\xc2\xab', '«', 'Left double angle quotes')
(null, '\xc2\xac', '¬', 'Not sign')
(null, '\xc2\xad', '­', 'Soft hyphen')
(null, '\xc2\xae', '®', 'Registered trade mark sign')
(null, '\xc2\xaf', '¯', 'Spacing macron - overline')
(null, '\xc2\xb0', '°', 'Degree sign')
(null, '\xc2\xb1', '±', 'Plus-or-minus sign')
(null, '\xc2\xb2', '²', 'Superscript two - squared')
(null, '\xc2\xb3', '³', 'Superscript three - cubed')
(null, '\xc2\xb4', '´', 'Acute accent - spacing acute')
(null, '\xc2\xb5', 'µ', 'Micro sign')
(null, '\xc2\xb6', '¶', 'Pilcrow sign - paragraph sign')
(null, '\xc2\xb7', '·', 'Middle dot - Georgian comma')
(null, '\xc2\xb8', '¸', 'Spacing cedilla')
(null, '\xc2\xb9', '¹', 'Superscript one')
(null, '\xc2\xba', 'º', 'Masculine ordinal indicator')
(null, '\xc2\xbb', '»', 'Right double angle quotes')
(null, '\xc2\xbc', '¼', 'Fraction one quarter')
(null, '\xc2\xbd', '½', 'Fraction one half')
(null, '\xc2\xbe', '¾', 'Fraction three quarters')
(null, '\xc2\xbf', '¿', 'Inverted question mark')
(null, '\xc3\x80', 'À', 'Latin capital letter A with grave')
(null, '\xc3\x81', 'Á', 'Latin capital letter A with acute')
(null, '\xc3\x82', 'Â', 'Latin capital letter A with circumflex')
(null, '\xc3\x83', 'Ã', 'Latin capital letter A with tilde')
(null, '\xc3\x84', 'Ä', 'Latin capital letter A with diaeresis')
(null, '\xc3\x85', 'Å', 'Latin capital letter A with ring above')
(null, '\xc3\x86', 'Æ', 'Latin capital letter AE')
(null, '\xc3\x87', 'Ç', 'Latin capital letter C with cedilla')
(null, '\xc3\x88', 'È', 'Latin capital letter E with grave')
(null, '\xc3\x89', 'É', 'Latin capital letter E with acute')
(null, '\xc3\x8a', 'Ê', 'Latin capital letter E with circumflex')
(null, '\xc3\x8b', 'Ë', 'Latin capital letter E with diaeresis')
(null, '\xc3\x8c', 'Ì', 'Latin capital letter I with grave')
(null, '\xc3\x8d', 'Í', 'Latin capital letter I with acute')
(null, '\xc3\x8e', 'Î', 'Latin capital letter I with circumflex')
(null, '\xc3\x8f', 'Ï', 'Latin capital letter I with diaeresis')
(null, '\xc3\x90', 'Ð', 'Latin capital letter ETH')
(null, '\xc3\x91', 'Ñ', 'Latin capital letter N with tilde')
(null, '\xc3\x92', 'Ò', 'Latin capital letter O with grave')
(null, '\xc3\x93', 'Ó', 'Latin capital letter O with acute')
(null, '\xc3\x94', 'Ô', 'Latin capital letter O with circumflex')
(null, '\xc3\x95', 'Õ', 'Latin capital letter O with tilde')
(null, '\xc3\x96', 'Ö', 'Latin capital letter O with diaeresis')
(null, '\xc3\x97', '×', 'Multiplication sign')
(null, '\xc3\x98', 'Ø', 'Latin capital letter O with slash')
(null, '\xc3\x99', 'Ù', 'Latin capital letter U with grave')
(null, '\xc3\x9a', 'Ú', 'Latin capital letter U with acute')
(null, '\xc3\x9b', 'Û', 'Latin capital letter U with circumflex')
(null, '\xc3\x9c', 'Ü', 'Latin capital letter U with diaeresis')
(null, '\xc3\x9d', 'Ý', 'Latin capital letter Y with acute')
(null, '\xc3\x9e', 'Þ', 'Latin capital letter THORN')
(null, '\xc3\x9f', 'ß', 'Latin small letter sharp s - ess-zed')
(null, '\xc3\xa0', 'à', 'Latin small letter a with grave')
(null, '\xc3\xa1', 'á', 'Latin small letter a with acute')
(null, '\xc3\xa2', 'â', 'Latin small letter a with circumflex')
(null, '\xc3\xa3', 'ã', 'Latin small letter a with tilde')
(null, '\xc3\xa4', 'ä', 'Latin small letter a with diaeresis')
(null, '\xc3\xa5', 'å', 'Latin small letter a with ring above')
(null, '\xc3\xa6', 'æ', 'Latin small letter ae')
(null, '\xc3\xa7', 'ç', 'Latin small letter c with cedilla')
(null, '\xc3\xa8', 'è', 'Latin small letter e with grave')
(null, '\xc3\xa9', 'é', 'Latin small letter e with acute')
(null, '\xc3\xaa', 'ê', 'Latin small letter e with circumflex')
(null, '\xc3\xab', 'ë', 'Latin small letter e with diaeresis')
(null, '\xc3\xac', 'ì', 'Latin small letter i with grave')
(null, '\xc3\xad', 'í', 'Latin small letter i with acute')
(null, '\xc3\xae', 'î', 'Latin small letter i with circumflex')
(null, '\xc3\xaf', 'ï', 'Latin small letter i with diaeresis')
(null, '\xc3\xb0', 'ð', 'Latin small letter eth')
(null, '\xc3\xb1', 'ñ', 'Latin small letter n with tilde')
(null, '\xc3\xb2', 'ò', 'Latin small letter o with grave')
(null, '\xc3\xb3', 'ó', 'Latin small letter o with acute')
(null, '\xc3\xb4', 'ô', 'Latin small letter o with circumflex')
(null, '\xc3\xb5', 'õ', 'Latin small letter o with tilde')
(null, '\xc3\xb6', 'ö', 'Latin small letter o with diaeresis')
(null, '\xc3\xb7', '÷', 'Division sign')
(null, '\xc3\xb8', 'ø', 'Latin small letter o with slash')
(null, '\xc3\xb9', 'ù', 'Latin small letter u with grave')
(null, '\xc3\xba', 'ú', 'Latin small letter u with acute')
(null, '\xc3\xbb', 'û', 'Latin small letter u with circumflex')
(null, '\xc3\xbc', 'ü', 'Latin small letter u with diaeresis')
(null, '\xc3\xbd', 'ý', 'Latin small letter y with acute')
(null, '\xc3\xbe', 'þ', 'Latin small letter thorn')
(null, '\xc3\xbf', 'ÿ', 'Latin small letter y with diaeresis')