Maybe there is something I don't understand, but I also have the impression that encoding management is strange in Drools.

The "lexer = new DRLLexer( new ANTLRInputStream( is ) );" line indeed leads to using the default encoding of the machine.

It is the same for the CSV parser (rule templates, Drools 5.1.1):

    public void parseFile(final InputStream inStream) {
final BufferedReader reader = new BufferedReader(new InputStreamReader(inStream));

It means that if I write my rule on a Windows machine (CP1252) and deploy it on a Linux server (UTF-8), it will not work as expected.

Conditions like...:
    Person(firstname == "Béatrice")

... will become things like (CP1252 file "transported" onto a UTF-8 platform and read as UTF-8) :
    Person(firstname == "B¤atrice")

I wonder how you deal with that in Guvnor.

Best regards,

Bruno.

Le 10/11/2011 06:47, Miles Wen a écrit :
Would you please provide a method in 'org.drools.io.ResourceFactory' like this:

public static Resource newReaderResource(InputStream stream, String encoding);

then I can use this method to load drl files as a stream while explicitly specify its ecoding?

And in line: 287 of class 'org.drools.compiler.DrlParser':

lexer = new DRLLexer( new ANTLRInputStream( is ) );

no encoding specified as well. The ANTLRInputStream has constructors which allows you to specify the encoding, otherwise it would figure out the encoding according to the environment, which is unpredictable some times.

I'm using drools 5.3.0, the newest version. Thosse problems exists for quite a while during previous versions. I'm fainting to see they are almost there after upgraded to the new version.

--
Regards.
Miles. Wen


_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users

_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users

Reply via email to