内容简介:drools规则出现中文验证 与jvm 默认编码(The default charset is determined during virtual-machin
drools规则出现中文验证 与jvm 默认编码(The default charset is determined during virtual-machine)的关系很重要
java.nio.charset.Charset类中有一个静态变量:
private static volatile Charset defaultCharset;
参考文档说明: http://docs.oracle.com/javase/1.5.0/docs/api/java/nio/charset/Charset.html#defaultCharset() ,
Returns the default charset of this Java virtual machine.
The default charset is determined during virtual-machine startup and typically depends upon the locale and charset of the underlying operating system.
,如果不设置,会依赖当前操作系统的时区和编码。
drools中的规则如果出现中文校验,则我们必须设置编码,以防止校验规则失灵,出现此问题时,经debug到
Charset类,看到jvm默认的编码对规则校验的失灵发生。
请自己手动验证一下吧。
具体解决:
【
Java uses a native call to list the contents of a directory. The underlying C runtime relies on the locale concept to build Java String
s from the byte blob stored by the filesystem as the filename.
When you execute a Java program from a shell (either as a privileged user or an unprivileged one) it carries an environment made of variables. The variable LANG
is read to transcode the stream of bytes to a Java String, and by default on Ubuntu it's associated to the UTF-8 encoding.
Note that a process need not to be run from any shell, but looking at the code it seems that Upstart is smart enough to understand when the command in the configuration file is intended to be executed from a shell. So, assuming that the JVM is invoked through a shell, the problem is that the variable LANG
is not set, so the C runtime assumes a default charset, which happens to not be UTF-8. The solution is in the Upstart stanza:
description "List UTF-8 encoded filenames" author "Raffaele Sgarro" env LANG=en_US.UTF-8 script cd /workspace java -jar list.jar test > log.txt end script
I used en_US.UTF-8
as the locale, but any UTF-8 backed one will do just as well. The sources of the test list.jar
public static void main(String[] args) { for (File file : new File(args[0]).listFiles()) { System.out.println(file.getName()); } }
The directory /workspace/test
contains filenames like ààà
, èèè
and so on. Now you can move to the database part ;)
】
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 编码、摘要和加密(一)——字节编码
- 新媒体编码时代的技术:编码与传输
- MySQL数据库字符编码总结--数据传输编码
- PHP 开发者学 Golang 之 URL 编码 (Urlencode)、解编码 (Urldecode)
- ios平台实现视频H264硬编码及软编码(附完整demo)
- 表单正则验证及文件上传验证功能
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
算法分析导论(第2版)(英文版)
[美]Robert Sedgewick(罗伯特•塞奇威克)、[美]Philippe Flajolet(菲利普•弗拉若莱) / 电子工业出版社 / 2015-6 / 128.00元
《算法分析导论(第2版)(英文版)》全面介绍了算法的数学分析中所涉及的主要技术。涵盖的内容来自经典的数学课题(包括离散数学、初等实分析、组合数学),以及经典的计算机科学课题(包括算法和数据结构)。《算法分析导论(第2版)(英文版)》的重点是“平均情况”或“概率性”分析,书中也论述了“最差情况”或“复杂性”分析所需的基本数学工具。 《算法分析导论(第2版)(英文版)》第 1 版为行业内的经典著......一起来看看 《算法分析导论(第2版)(英文版)》 这本书的介绍吧!