Oliver Wesp wrote:
Dear List,
I' struggling with queryByAttributes on an attribute field with german
umlauts using java mapscript.
The odd thing is that the same thing works fine with php mapscript and
when I use expressions in my mapfile. I'm using a shapefile as
datasource.
Here is what I do:
layer.queryByAttributes(map,"KREIS_NAME", "/Südliche Weinstraße/",
mapscriptConstants.MS_MULTIPLE);
layer.open();
System.out.println( "Result Count: " +layer.getNumResults() );
layer.close();
The result is always null while replacing the qstring with something
that doesn't contain special characters (e.g.
'Mainz-Bingen') works fine.
As noted above the following layer definition in a mapfile works fine
LAYER
NAME kreis
STATUS DEFAULT
TYPE polygon
DATA "/tmp/subset"
TEMPLATE "kreis.html"
CLASSITEM KREIS_NAME
CLASS
NAME Boundary
COLOR 128 128 0
OUTLINECOLOR 0 0 0
EXPRESSION /Südliche Weinstraße/
END
END
but this does not:
layer.setClassitem("KREIS_NAME");
classObj cl = new classObj(layer);
cl.setName("Classname");
cl.setExpression("/Südliche Weinstraße/");
I use Mapserver 4.8.1 on W2k, Tomcat 5.0.28.
I can provide some sample data, just in case someone likes to reproduce.
Any help is appreciated.
best regards
Oliver
Hi Oliver,
only a guess but there seems to a difference in the string encoding
between the mapserver lib in the system and java. Try to convert the
String before you set the expression in your code. (-> String( byte
bytes[], String ) throws UnsupportedEncodingException)
Please let me if this helps or how you solved it.
Regards,
Norbert