diff -Nuar a/vendor/magento/module-payment/Block/Transparent/Redirect.php b/vendor/magento/module-payment/Block/Transparent/Redirect.php
index aeaeee7e4d2..29a8f622145 100644
--- a/vendor/magento/module-payment/Block/Transparent/Redirect.php
+++ b/vendor/magento/module-payment/Block/Transparent/Redirect.php
@@ -51,10 +51,21 @@ class Redirect extends Template
     /**
      * Returns params to be redirected.
      *
+     * Encodes invalid UTF-8 values to UTF-8 to prevent character escape error.
+     * Some payment methods like PayPal, send data in merchant defined language encoding
+     * which can be different from the system character encoding (UTF-8).
+     *
      * @return array
      */
     public function getPostParams(): array
     {
-        return (array)$this->_request->getPostValue();
+        $params = [];
+        foreach ($this->_request->getPostValue() as $name => $value) {
+            if (!empty($value) && mb_detect_encoding($value, 'UTF-8', true) === false) {
+                $value = utf8_encode($value);
+            }
+            $params[$name] = $value;
+        }
+        return $params;
     }
 }
