From c6c32c25cc6f614151441152e32143ef6b515fb8 Mon Sep 17 00:00:00 2001
From: Ulrich Brammer <ubrammer@t-online.de>
Date: Sat, 15 Feb 2014 00:20:09 +0100
Subject: Latin1 Filter implementation

---
 src/Mod/Draft/Draft.py |   14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/Mod/Draft/Draft.py b/src/Mod/Draft/Draft.py
index b83355e..0e2d715 100644
--- a/src/Mod/Draft/Draft.py
+++ b/src/Mod/Draft/Draft.py
@@ -3004,6 +3004,16 @@ class _ViewProviderDimension(_ViewProviderDraft):
         self.onChanged(vobj,"FontName")
         self.onChanged(vobj,"ArrowType")
         self.onChanged(vobj,"LineColor")
+
+    def latin1_filter(self, filter_text):
+        latin_text = ''
+        for i in range(len(filter_text)):
+            if ord(filter_text[i])<256:
+               latin_text += filter_text[i]
+            else:
+               latin_text += ' '
+        return latin_text.encode('latin1')    
+
             
     def updateData(self, obj, prop):
         "called when the base object is changed"
@@ -3110,8 +3120,8 @@ class _ViewProviderDimension(_ViewProviderDraft):
             self.string = unicode(fstring % l)
             if obj.ViewObject.Override:
                 self.string = unicode(obj.ViewObject.Override).replace(u"$dim",self.string)
-            self.text.string = self.string.encode("latin1")
-            self.text3d.string = self.string.encode("latin1")
+            self.text.string = self.latin1_filter(self.string)
+            self.text3d.string = self.latin1_filter(self.string)
 
             # set the distance property
             if round(obj.Distance,precision()) != round(l,precision()):
-- 
1.7.10.4

