Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何找到TIBCO集合消息的字节编码?_Java_Character Encoding_Nio_Tibco - Fatal编程技术网

Java 如何找到TIBCO集合消息的字节编码?

Java 如何找到TIBCO集合消息的字节编码?,java,character-encoding,nio,tibco,Java,Character Encoding,Nio,Tibco,在我的Java应用程序中,我将TIBCO RV消息作为字节归档到文件中 我正在编写一个小的实用程序应用程序,将播放消息回来。这样,我就可以从字节创建一个tibrvmg对象,而不必解析文件并手动构造对象 我遇到的问题是,我正在读取一个在Linux机器上创建的文件,并试图在Windows机器上运行我的应用程序。由于写入文件的字符集不同,我收到一个错误 所以现在,我想做的是将每条消息记录在一个特定的字符集(UTF-8)中,这样我就不在乎在哪个平台上运行我的回放应用程序了。应用程序应该在读取文件之前知道

在我的Java应用程序中,我将TIBCO RV消息作为字节归档到文件中

我正在编写一个小的实用程序应用程序,将播放消息回来。这样,我就可以从字节创建一个tibrvmg对象,而不必解析文件并手动构造对象

我遇到的问题是,我正在读取一个在Linux机器上创建的文件,并试图在Windows机器上运行我的应用程序。由于写入文件的字符集不同,我收到一个错误

所以现在,我想做的是将每条消息记录在一个特定的字符集(UTF-8)中,这样我就不在乎在哪个平台上运行我的回放应用程序了。应用程序应该在读取文件之前知道写入文件的字符集。我计划为此使用java.nio包,将字节从一个字符集转换为另一个字符集

我是否需要知道TIBRV消息字节的编码字符集以进行转换?如果是这样的话,我怎样才能找到答案呢?

正如这句话(承认相当古老)所表明的,人们对该网络协议的内部结构知之甚少。这可能会让你面临很大的挑战

也就是说,如果消息只是二进制数据块(从网络捕获),它们甚至不应该有字符集。字符集用于文本数据,因为单个字符可以用多种不同的方式编码,所以它很重要。二进制数据不是由字符组成的,因此不可能有这种意义上的编码。

正如这一点(承认相当古老)所表明的,对该网络协议的内部结构知之甚少。这可能会让你面临很大的挑战


也就是说,如果消息只是二进制数据块(从网络捕获),它们甚至不应该有字符集。字符集用于文本数据,因为单个字符可以用多种不同的方式编码,所以它很重要。二进制数据不是由字符组成的,因此不能有这种意义上的编码。

这可能与Java字符串编码有关,而不是与TIBRV有关。尽管文档中有这样的内容:

Strings and Character Encodings -------------------------------------------------------------------------------- Rendezvous software uses strings in several roles: * String data inside message fields * Field names * Subject names (and other associated strings that are not strictly inside the message) * Certified delivery correspondent names * Group names (fault tolerance) All these strings (both in C and in wire format) use the character encoding appropriate to the ISO locale of the sender. For example, the United States is locale en_US, and uses the Latin-1 character encoding (also called ISO 8859-1); Japan is locale ja_JP, and uses the Shift-JIS character encoding. When two programs exchange messages within the same locale, strings are always correct. However, when a message sender and receiver use different character encodings, the receiving program must convert between encodings as needed. Rendezvous software does not convert automatically. EBCDIC For information about string encoding in EBCDIC environments, see tibrv_SetCodePages() . 字符串和字符编码 -------------------------------------------------------------------------------- 集合软件在多个角色中使用字符串: *消息字段中的字符串数据 *字段名 *主题名称(以及其他未指定的关联字符串) (严格地说是在信息内部) *经核证的投递通讯员姓名 *组名(容错) 所有这些字符串(C和wire格式)都使用该字符 适用于发送方的ISO语言环境的编码。例如 美国的语言环境是en_US,使用拉丁字母-1 编码(也称为ISO 8859-1);日本是语言环境ja_JP,并使用 移位JIS字符编码。 当两个程序在同一语言环境中交换消息时,字符串 它们总是正确的。但是,当消息发送者和接收者使用 不同的字符编码,接收程序必须转换 根据需要在编码之间切换。会合软件不转换 自动地 EBCDIC 有关EBCDIC环境中字符串编码的信息, 请参阅tibrv_SetCodePages()。
因此,您可能需要查看机器的语言环境。

这可能与Java字符串编码有关,而不是与TIBRV有关。尽管文档中有这样的内容:

Strings and Character Encodings -------------------------------------------------------------------------------- Rendezvous software uses strings in several roles: * String data inside message fields * Field names * Subject names (and other associated strings that are not strictly inside the message) * Certified delivery correspondent names * Group names (fault tolerance) All these strings (both in C and in wire format) use the character encoding appropriate to the ISO locale of the sender. For example, the United States is locale en_US, and uses the Latin-1 character encoding (also called ISO 8859-1); Japan is locale ja_JP, and uses the Shift-JIS character encoding. When two programs exchange messages within the same locale, strings are always correct. However, when a message sender and receiver use different character encodings, the receiving program must convert between encodings as needed. Rendezvous software does not convert automatically. EBCDIC For information about string encoding in EBCDIC environments, see tibrv_SetCodePages() . 字符串和字符编码 -------------------------------------------------------------------------------- 集合软件在多个角色中使用字符串: *消息字段中的字符串数据 *字段名 *主题名称(以及其他未指定的关联字符串) (严格地说是在信息内部) *经核证的投递通讯员姓名 *组名(容错) 所有这些字符串(C和wire格式)都使用该字符 适用于发送方的ISO语言环境的编码。例如 美国的语言环境是en_US,使用拉丁字母-1 编码(也称为ISO 8859-1);日本是语言环境ja_JP,并使用 移位JIS字符编码。 当两个程序在同一语言环境中交换消息时,字符串 它们总是正确的。但是,当消息发送者和接收者使用 不同的字符编码,接收程序必须转换 根据需要在编码之间切换。会合软件不转换 自动地 EBCDIC 有关EBCDIC环境中字符串编码的信息, 请参阅tibrv_SetCodePages()。 因此,您可能需要查看机器的区域设置

我需要知道什么字符集吗 TIBRV消息字节编码为 你认为转型是什么

对。字符集是一种将文本转换为字节流的方法,反之亦然。您的网络数据是一个字节流,因此当您将其中的一部分解释为文本时,您(隐式或显式)使用的是一个字符集——问题是它是否正确

将字节从一个字符集转换为另一个字符集基本上意味着使用一个字符集将它们转换为文本,然后使用另一个字符集返回到字节。请注意,这可能会导致数据长度发生变化,因为许多字符集对某些字符的使用超过1字节。在网络消息的上下文中,当它使长度字段无效或导致文本字段溢出时,可能会出现问题。最好不要做任何转换,而是教阅读应用程序学习如何处理不同的字符集

如果是的话,我怎样才能找到答案

看看协议规范

我需要知道什么字符集吗 TIBRV消息字节编码为 你认为转型是什么

对。字符集是一种将文本转换为字节流的方法,反之亦然。您的网络数据是一个字节流,因此当您将其中的一部分解释为文本时,您(隐式或显式)使用的是一个字符集——问题是它是否正确

将字节从一个字符集转换为另一个字符集基本上意味着转换t