相关疑难解决方法(0)

替换Unicode控制字符

我需要在Java中替换字符串中的所有特殊控制字符.

我想问谷歌地图API v3,谷歌似乎并不喜欢这些字符.

示例:http://www.google.com/maps/api/geocode/json?sendor = false&address = NEWS%20YO​​RK%C2%8F

此URL包含以下字符:http://www.fileformat.info/info/unicode/char/008f/index.htm

所以我收到了一些数据,我需要对这些数据进行地理编码.我知道有些角色不会通过地理编码,但我不知道确切的列表.

我是不是能够找到的有关这个问题的任何文件,所以我认为谷歌不喜欢的字符的列表是这一个: http://www.fileformat.info/info/unicode/category/Cc/list.htm

是否有任何已构建的函数来摆脱这些字符,或者我必须构建一个新的,逐个替换?

或者有一个很好的正则表达式完成工作?

有人知道谷歌不喜欢哪个角色列表?

编辑:Google为此创建了一个网页:

https://developers.google.com/maps/documentation/webservices/?hl=fr#BuildingURLs

java regex unicode google-maps character-properties

6
推荐指数
1
解决办法
1万
查看次数

通过 TCP/IP 接收数据时 HL7V2 HAPI 解析器异常

我正在使用2.3版的 HAPI hapi-structures-v25库来解析 HL7v2 消息并将其转换为 FHIR 资源。在通过 TCP 侦听器使用 HAPI 接收和解析 HL7V2 消息时,我遇到了一个奇怪的问题。

确定消息的编码。以下是消息的前 50 个字符以供参考,尽管这可能不是问题所在:MSH|^~\&|test|DrJhonDoe|TEST|UNKNOWN|20210216190432||ADT^A01^ADT_A01|60b647d4-b5a5 -4fae-a928-d4a3849de3c8|T|2.5

奇怪的是,当我尝试在 main 函数中将此消息作为字符串发送时,我没有收到此错误。仅当我通过 TCP/IP 将数据接收到我的 Java 函数时才会收到此错误。我尝试使用 Mirth 以及外部工具将 HL7 消息发送到我的接收 TCP 端口,结果相同。

这是我尝试处理的 HL7v2 消息示例

MSH|^~\\&|test|Dr.JhonDoe|TEST|UNKNOWN|20210216190432.7||ADT^A01^ADT_A01|60b647d4b5a54faea928d4a3849de3c8|T|2.5
EVN||20210216|20210216|
Run Code Online (Sandbox Code Playgroud)

从 tcp/ip 接收数据时,我使用 UTF-8 字符集将字节转换为字符串。

InputStream in = connection.getInputStream();
OutputStream out = connection.getOutputStream();
receivedMessageSize = in.read(receivedByeBuffer);
String incomingHl7Message = new String(receivedByeBuffer, StandardCharsets.UTF_8);
Run Code Online (Sandbox Code Playgroud)

我正确地收到了消息。但不确定为什么会出现错误。

java string tcp mirth hapi

6
推荐指数
1
解决办法
241
查看次数

标签 统计

java ×2

character-properties ×1

google-maps ×1

hapi ×1

mirth ×1

regex ×1

string ×1

tcp ×1

unicode ×1