RT# 79705 Correct UTF-8 output for generated E-Mail
authorMitch Jackson <mitch@freeside.biz>
Sat, 29 Sep 2018 22:48:39 +0000 (18:48 -0400)
committerMitch Jackson <mitch@freeside.biz>
Sat, 29 Sep 2018 23:09:12 +0000 (19:09 -0400)
FS/FS/Record.pm

index 08d681e..ce12a16 100644 (file)
@@ -3629,7 +3629,19 @@ sub _quote {
            && driver_name eq 'Pg'
           )
   {
-    dbh->quote($value, { pg_type => PG_BYTEA() });
+    local $@;
+
+    eval { $value = dbh->quote($value, { pg_type => PG_BYTEA() }); };
+
+    if ( $@ && $@ =~ /Wide character/i ) {
+      warn 'Correcting malformed UTF-8 string for binary quote()'
+        if $DEBUG;
+      utf8::decode($value);
+      utf8::encode($value);
+      $value = dbh->quote($value, { pg_type => PG_BYTEA() });
+    }
+
+    $value;
   } else {
     dbh->quote($value);
   }