J'utilise le pilote FreeTDS avec DBD::Sybase, en me connectant à un serveur MS SQL. Lorsque j'interroge certaines valeurs de certains enregistrements, j'obtiens cette erreur :
DBD::Sybase::st fetchrow_arrayref failed: OpenClient message: LAYER = (0) ORIGIN = (0) SEVERITY = (9) NUMBER = (99)
Server , database
Message String: WARNING! Some character(s) could not be converted into client's character set. Unconverted bytes were changed to question marks ('?').
Cela semble se produire pour les enregistrements contenant des caractères spéciaux du jeu de caractères Windows, tels que les guillemets, copiés et collés à partir de messages Outlook et Word.
Malheureusement, je n'ai aucun contrôle sur cette base de données ; l'assainissement des données à l'entrée est évidemment la meilleure solution, mais elle n'est pas à ma disposition.
Quels sont les paramètres de FreeTDS que je dois modifier pour pouvoir interroger ces enregistrements avec succès ?
Informations complémentaires :
La requête fonctionne correctement à partir de tsql. Je n'obtiens cette erreur qu'avec l'interface DBD::Sybase de Perl. (Devrais-je tester avec quelque chose d'autre ? Je n'ai pas encore l'expertise nécessaire pour installer PHP ou Python. J'ai jTDS et je peux l'utiliser, mais je pense qu'il s'agit d'une implémentation complètement différente, et non d'une interface avec FreeTDS).
Ajout
client charset = UTF-8
à mon fichier freetds.conf entraîne l'affichage de "Out of memory !" sur STDERR.