从Javascript传递到Java时,具有高Unicode字符的字符串会损坏

从Javascript传递到Java时,具有高Unicode字符的字符串会损坏,javascript,java,react-native,unicode,Javascript,Java,React Native,Unicode,我正在将一个字符串从Javascript传递给React本机Java模块,然后返回Javascript。但是,任何高Unicode字符(如emojis)在传递给Java后都会损坏,并变成一对问号 例如,java servlet规范的字符串testing123默认情况下假定表单参数为ISO-8859-1。假设您使用的是tomcat,请参阅以获取有关如何解决此问题的信息 相关引用自页面 POST请求应指定参数和值的编码 由于许多客户端无法设置显式编码,因此 应用程序默认使用US-ASCII/x-ww

我正在将一个字符串从Javascript传递给React本机Java模块,然后返回Javascript。但是,任何高Unicode字符(如emojis)在传递给Java后都会损坏,并变成一对问号


例如,java servlet规范的字符串testing123默认情况下假定表单参数为ISO-8859-1。假设您使用的是tomcat,请参阅以获取有关如何解决此问题的信息

相关引用自页面

POST请求应指定参数和值的编码 由于许多客户端无法设置显式编码,因此 应用程序默认使用US-ASCII/x-www-form-urlencoded和 ISO-8859-1适用于所有其他内容类型

相关SO职位


请记住,您的控制台和数据库也可能不支持高unicode字符。

这样修改后台上载库的代码修复了以下问题:

request = new MultipartUploadRequest(this.getReactApplicationContext(), customUploadId, url)
        .addFileToUpload(filePath, options.getString("field"))
        .setUtf8Charset(); // add this line

请共享接收此字符串的Java代码。这与编码问题类似。在传递到Java或任何其他平台之前,您需要转义unicode字符。请参阅方法。首先显示将字符串从JavaScript发送到Java的代码-您可能在编码方面出了问题。Alterna但是不太可能,你在接收端做错了什么。我已经用处理字符串的JS和Java代码更新了问题。我的应用程序中没有使用Java servlet。Java端将字符串发送到节点服务器,但似乎文本在发送之前已损坏。你的问题是编码的明显迹象正在处理问题。请确保您在过程中发出的每个http请求上设置了字符集,这可能会解决您的问题。这就是问题所在。我使用的后台上载库没有公开将字符集设置为UTF-8的方法,但一旦我手动设置,它就会正常工作。感谢帮助。