gpt4 book ai didi

java - 如何在GWT客户端获取字符类型?

转载 作者:太空宇宙 更新时间:2023-11-04 11:30:11 26 4
gpt4 key购买 nike

当 json 字符串包含不可打印/不可识别的 Unicode 字符时,

com.google.gwt.json.client.JSONParser.parseStrict(jsonStr) 会引发语法错误。因此,我试图删除客户端中不可打印的 Unicode 字符。正在关注How can I replace non-printable Unicode characters in Java? ,我尝试在客户端实现此代码,但 Character.getType(codePoint) 与客户端不兼容。

有什么办法可以解决这个问题吗?还有其他方法可以获取客户端的字符类型吗?关于如何解决主要问题还有其他建议吗?

非常感谢!大卫。

顺便说一句,我尝试使用 my_string.replaceAll("\\p{C}", "?") 代码,它在服务器端有效,但在客户端无效。

最佳答案

您可以添加原生 JS 方法并在其中使用正则表达式来替换每个不可打印的非 ASCII 字符,如下所示:

private native String replaceUnprintableChars(String text, String replacement) /*-{
return text.replace(/[^\u0020-\u007E]/g, replacement);
}-*/;


// Somewhere else....
String replacedText = replaceUnprintableChars(originalString, "?");

显示的正则表达式将用替换字符串替换每个不可打印或非ASCII字符(例如“?”)。如果您想包含非 ASCII 可打印字符(例如拉丁语),那么您可以调整表达式以扩大范围。

当然,您也可以使用 Java 正则表达式来做到这一点:

text.replaceAll("[^\\u0020-\\u007E]", "?");

但是我先想出了JS解决方案,不知道为什么!

关于java - 如何在GWT客户端获取字符类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43886554/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com