Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment décoder une chaîne unicode base64 à l'aide de T-SQL

Vos données encodées en base 64 contiennent une chaîne UTF-8. MS SQL ne prend pas en charge UTF-8, uniquement UTF-16, il échoue donc pour tous les caractères en dehors de l'ASCII.

La solution est soit d'envoyer les données en tant que nvarchar tout de suite, ou pour encoder la chaîne en UTF-16 (et l'envoyer en tant que varbinary ou base-64, selon les besoins).

Basé sur la documentation Erlang, cela peut nécessiter une bibliothèque externe, unicode :http://www.erlang.org/doc/apps/stdlib/ unicode_usage.html

Fondamentalement, la valeur par défaut semble être UTF-8, vous devez spécifier UTF-16 manuellement. La prise en charge de l'UTF-16 semble un peu maladroite, mais cela devrait être tout à fait faisable.