【问题标题】:Groovy determine byte array encodingGroovy 确定字节数组编码
【发布时间】:2016-12-21 18:23:33
【问题描述】:

Groovy/Grails中有几种方法可以确定字节数组中的内容编码?
我只有文件内容存储在 blob 中的数据库中,而 groovy 端存储为:

字节[] 文件数据

【问题讨论】:

    标签: grails encoding groovy bytearray


    【解决方案1】:

    有一些方法,但它们更像是变通方法。您可以将其转换为字符串,但其构造函数仍需要第二个参数,即编码。字符串构造函数不会“检测”,而是“使用”传递的编码。

    您可以尝试一些编码检测算法,例如mozilla'sjchardet

    This answer 很好地总结了为什么从字节数组中检测编码是错误的:

    您无法确定任意字节流的编码。这就是编码的本质。编码意味着字节值与其表示之间的映射。所以每个编码“可能”都是正确的。

    【讨论】:

    • 我完全同意。您应该尝试从将编码存储在数据库中的人那里找出编码。如果由于某种原因无法做到这一点,编码检测算法是您最好的选择。
    • 好的。谢谢你们。但这两种算法可以在 grails 应用程序中使用吗?还是需要与 Groovy 和 Java 类集成?
    • jchardet 是一个 java 库,因此可以与 groovy 无缝集成。
    猜你喜欢
    • 2011-10-04
    • 1970-01-01
    • 2015-01-28
    • 1970-01-01
    • 1970-01-01
    • 2012-02-04
    • 2010-10-27
    • 2014-07-31
    • 1970-01-01
    相关资源
    最近更新 更多