ThinkGeo.com    |     Documentation    |     Premium Support

Special characters not being displayed properly

Hi Support Team,


I am using map data for Sweden.


For some reason, my map can't show the special character properly like in the sreenshot attached. 


For example, It would show the text on the right.. instead of the proper ones on the left below. 


 


I will send the sample data to you at support@thinkgeo.com with the same subject.


 


FYI.  


I am using web edition v4.5 on Windows xp professional version 2002 service pack 3.  I have Oracle 10.2.0 installed.


However, my map can display German special characters properly (e.g. Ü)


 


Do you any idea why this is? Thanks a lot!


 


Lishan


 



Hi Lishan, 
  
 I will build a sample with your data for reproduce your problem. 
  
 I have a question before that, is your machine language environment default German?  
  
 If you want to show other language data text correct in your machine, you need to change the value of your ((ShapeFileFeatureSource)layer.FeatureSource).Encoding.  
  
 You can try to set that first for solve your problem. 
  
 Regards, 
  
 Don

Hi Don, 



My machine default language is English. that screenshot is from my customer support team. they might be using the German or Swedish default language setting.  



The special characters in German data  show properly on my machine..  

The special characters in Swedish data (sample attached previously) do not.




I will try what you suggested and let you know the result. 

Thanks 



Lishan



Hi Don, 



I have tried something similar with ((ShapeFileFeatureSource)layer.FeatureSource).Encoding = Encoding.UTF-8;  

That seems to work for displaying the characters properly..  

However, we are using MultiShapeFileFeatureLayer for our layers..  accordingly, I try to cast the layer with MultiShapeFileFeatureSource like 


"((MultiShapeFileFeatureSource)layer.FeatureSource)".. which doesn't have properly Encoding .. to set..  



You have any suggestion for my case?  



Thanks! 



Lishan



Hi Lishan, 
  
 I am glad to hear the encoding works for you. 
  
 Are you using MultipleShapeFileFeatureLayer or MultipleFeatureLayer? 
  
 MultipleShapeFileFeatureSource can be set the encoding but MultipleFeatureSource cannot. 
  
 Because the first one read data from shape file but the second one read data from memory. 
  
 Regards, 
  
 Don

Hi Don, 
 Thanks.  
  
 This is my exact coding attempt.  
  ((MultipleShapeFileFeatureSource)multiLayer.FeatureSource).Encoding = Encoding.UTF8; 
  
 The compiler complains “ThinkGeo.MapSuite.Core.MultipleShapeFileFeatureSource’ does not contain a definition for ‘Encoding’ and no extension method ‘Encoding’ accepting a first argument of type ‘ThinkGeo.MapSuite.Core.MultipleShapeFileFeatureSource’ could be found (are you missing a using directive or an assembly reference?)”   
  
 I am using web edition 4.5. Do I need a newer version to make that work? or I did something wrong?  
 Thanks for your help! 
  
 Lishan 


Lishan, 
  
 Thanks for your reply. Your code correct and works for me. 
  
 The "Encoding" properties for "MultipleShapeFileFeatureSource" and "MultipleShapeFileFeatureLayer" have been added in some newer 4.5 versions like 4.5.171.0. And you can try to use our new web editiion 5.0 version, each 5.0.x version works for this. 
  
 Regards, 
  
 Don

Hi Don,



Thanks. I have tried with the web edition 5.0.  The special characters are showing properly.  however, the area shapes don't seem being drawn..




this is when i use web edition 4.5









this is when i use web edition 5.0 the adminbndy layer is not drawn..



 


do you think of anythink on top of your mind that could cause this?


Thanks!


 


Lishan



 Hi Lishan,


 
I build a sample with your "Adminbndy4.shp" and our eval 5.0 web edition.
 
The areas render correct. Could you provide us a sample for reproduce your issue?
 
As below is my test code for that:
 
ShapeFileFeatureLayer layer = new ShapeFileFeatureLayer(@"C:\Sample\Sweden2\Adminbndy4.shp");
layer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.Country1;
layer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle = TextStyles.Country1("POLYGON_NM");
layer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
layer.Encoding = Encoding.UTF8;
LayerOverlay overlay = new LayerOverlay();
overlay.Layers.Add(layer);
Map1.CustomOverlays.Add(overlay);



layer.Open();
Map1.CurrentExtent = layer.GetBoundingBox();
layer.Close();
 
Regards,
 
Don

Hi Lishan,


 
This is my screen capture for my sample.
 

 
Regards,
 
Don

hi Don,



Sorry for the late reply.  It's easier for me to describe what we use.. so i do that for now..




Our code is using MultipleShapeFileFeatureLayer instead of ShapeFileFeatureLayer.

Would you mind trying the same data with MultipleShapeFileFeatureLayer?



I have tried to use ShapeFileFeatureLayer with the Adminbndy4 shape files, everything works fine.


But it's when we use MultipleShapeFileFeatureLayer, the map has problem showing the ares when it comes to certain level as zooming in. (please see the attached screenshots, some areas become missing as zooming in).


We use MultipleShapeFileFeatureLayer because sometimes we will have mutltiple Adminbndy4 etc in the data source. (Adminbndy4??????).  and we BuildIndex with "BuildIndexMode.DoNotRebuild".


And again, things used to be fine with our using  MultipleShapeFileFeatureLayer, until we updrade to Wed Edition 5.0. (ie. MapSuiteCore.dll v5.0.0.0..)


Thanks a lot!


 


Lishan


 


 


 



swedenAdmin4screenshots.zip (416 KB)

Hi Lishan, 
  
 I tested with MultipleShapeFileFeatureLayer instead of ShapeFileFeatureLayer in my sample and it still works well there. 
  
 You need change your code like this: 
  
 1. At first you need to build .midx and .mids file for your shape file like this: 
 MultipleShapeFileFeatureLayer.BuildIndex(@"C:\Sweden2\Adminbndy4.shp", BuildIndexMode.Rebuild); 
  
 2. You need add the .midx file path when you instantiate your MultipleShapeFileFeatureLayer class like this: 
 MultipleShapeFileFeatureLayer layer = new MultipleShapeFileFeatureLayer(@"C:\Sweden2\Adminbndy4.shp", @"C:\Sweden2\Adminbndy4.midx"); 
  
 Could you have a test about it and let me know if you still have this problem? 
  
 Regards, 
  
 Don

Hi Don,


 


Thanks!


I tried using MultipleShapeFileFeatureLayer with file name Adminbndy4.shp.. it works. 


I think now the problem is when we need to use wildcard name with "?" like  Adminbndy4??????.shp, it doesn't work  properly (which used to work well with version 4.5 and ealier versions ..)..  


MultipleShapeFileFeatureLayer.BuildIndex(@"C:\Sweden2\Adminbndy4??????.shp", BuildIndexMode.Rebuild); 

MultipleShapeFileFeatureLayer layer = new  MultipleShapeFileFeatureLayer(@"C:\Sweden2\Adminbndy4??????.shp",  @"C:\Sweden2\Adminbndy4??????.midx");


 


Have we used it in a wrong way?


Thanks!


Lishan


 



Hi Lishan, 
  
 Sorry I only have one  Adminbndy4.shp file and cannot test that for you in V5.0. 
  
 I think your code should works like this: 
  
 MultipleShapeFileFeatureLayer.BuildIndex(@"C:\Sweden2\Adminbndy4???.shp", BuildIndexMode.Rebuild);  
 MultipleShapeFileFeatureLayer layer = new MultipleShapeFileFeatureLayer(@"C:\Sweden2\Adminbndy4???.shp", @"C:\Sweden2\Adminbndy4.midx"); 
  
 Regards, 
  
 Don

Hi Don, 

Thanks for your reply. 



To clarify. 

This is the code we have whether there's multiple shape files for the same layer.. (eg. Adminbndy4_d82.shp..., Adminbndy_d83...) or there's just one shape file for each layer (eg. Adminbndy4.shp..)  

 MultipleShapeFileFeatureLayer.BuildIndex(@"C:\Sweden2\Adminbndy4??????.shp", BuildIndexMode.Rebuild); MultipleShapeFileFeatureLayer layer = new MultipleShapeFileFeatureLayer(@"C:\Sweden2\Adminbndy4??????.shp", @"C:\Sweden2\Adminbndy4??????.midx");  



Based on your last reply though, we should have provided the index file name without the "?" 

MultipleShapeFileFeatureLayer layer = new MultipleShapeFileFeatureLayer(@"C:\Sweden2\Adminbndy4??????.shp", @"C:\Sweden2\Adminbndy4.midx");   



and it should create index file (in my case) Adminbndy4.midx, Adminbndy4.mids to include the indexing for Adminbndy4_d82 and Adminbndy_d83, right?   



I tried that. It works.  



I am now just a bit confused  .. because when we provided "Adminbndy4??????.midx" for MultipleShapeFileFeatureLayer in the previous version of WebEdition as the index file name.. it did work. But did we already use it inappropriately? (or it was allowed?) 



but anyways, the name for the index file to be used in  new MultipleShapeFileFeatureLayer should always be w/o the wildcard character whether there's multiple shape files for the layer or not, Right?  



Thanks a lot! 



Lishan 



Hi Lishan, 
  
 I think you are right. Our design should be support the wildcard character just follow your original code. 
  
 I did a sample for test and it looks our code may have a bug with the API of MultipleShapeFileFeatureLayer. 
  
 We will make sure that and if this proved a bug we will try to fix as soon as possible. 
  
 Regards, 
  
 Don

Thanks Don! 
  
 We will need our release soon. How long would you think it will take to get your fix if it’s proved to be a bug?  
 Thanks! 
  
 Lishan

Lishan, 
  
 I think we can fix that in our 5.0.33.0 build. 
  
 I will test that for you when I get the latest build package. 
  
 Regards, 
  
 Don

Hi Lishan, 



Our developer changed daily build flow, so I think you couldn't get the latest daily build package today. I am sorry for that. 



Regards, 



Don



Hi Don, 
  
 That’s ok. Thank you very much for your help! 
  
 Lishan