在iOS 11中,键盘自动更正会创建无效的UTF8

在iOS 11中,键盘自动更正会创建无效的UTF8,ios,ruby-on-rails,ruby,postgresql,ios11,Ios,Ruby On Rails,Ruby,Postgresql,Ios11,我们的应用程序接受用户文本输入,然后保存到服务器端数据库。 在iOS 11中,当您在一行中输入两个字符时,它们会自动组合成一个emdash-。当您在一行中输入三个字符时,您将得到一个emdash+一个带有无效终止符的半emdash。 这导致我的rails服务器出现问题,该服务器无法解析此字符串,因为它无效。 字符串如下所示:\xE2\x80\x94\x00。这仅可从iOS 11获得。它可以使用协议的一部分进行控制。这只是iOS 11的问题吗?是的,只有在iOS 11中,键盘才能进行这种更换。在i

我们的应用程序接受用户文本输入,然后保存到服务器端数据库。 在iOS 11中,当您在一行中输入两个字符时,它们会自动组合成一个emdash-。当您在一行中输入三个字符时,您将得到一个emdash+一个带有无效终止符的半emdash。 这导致我的rails服务器出现问题,该服务器无法解析此字符串,因为它无效。
字符串如下所示:\xE2\x80\x94\x00。这仅可从iOS 11获得。它可以使用协议的一部分进行控制。

这只是iOS 11的问题吗?是的,只有在iOS 11中,键盘才能进行这种更换。在iOS 10中,它保持为3个破折号。这听起来像是编码不匹配。您应该能够设置客户端编码,以便postgresql能够动态转换为其内部编码。看这里: