Amedeo Mantica wrote:
here the map...
On 30/dic/2009, at 21.10, Amedeo Mantica wrote:

Hello,

I remember that there is a class that strips those orrible Microsoft Word bad characters ( some dashes and quotes )
Amedeo,

Here's a slightly more elaborate and perhaps more complete solution. Tested, tried and true in production apps.

private static NSDictionary<String, String> gremlins;

public static NSDictionary<String, String> gremlins() {
   if (gremlins == null) {
NSMutableDictionary<String, String> dict = new NSMutableDictionary<String, String>(); // standard versions dict.setObjectForKey("&#160;", Character.toString((char)194) + Character.toString((char)160)); // non-breaking space dict.setObjectForKey("&#174;", Character.toString((char)194) + Character.toString((char)174)); // registered trademark dict.setObjectForKey("&#188;", Character.toString((char)194) + Character.toString((char)188)); // 1/4 dict.setObjectForKey("&#189;", Character.toString((char)194) + Character.toString((char)189)); // 1/2 dict.setObjectForKey("&#190;", Character.toString((char)194) + Character.toString((char)190)); // 3/4 dict.setObjectForKey("&#8211;", Character.toString((char)226) + Character.toString((char)128) + Character.toString((char)147)); // endash dict.setObjectForKey("&#8211;", Character.toString((char)226) + Character.toString((char)128) + Character.toString((char)148)); // emdash dict.setObjectForKey("&#8216;", Character.toString((char)226) + Character.toString((char)128) + Character.toString((char)152)); // left single quotation mark dict.setObjectForKey("&#8217;", Character.toString((char)226) + Character.toString((char)128) + Character.toString((char)153)); // right single quotation mark dict.setObjectForKey("&#8220;", Character.toString((char)226) + Character.toString((char)128) + Character.toString((char)156)); // left double quotation mark dict.setObjectForKey("&#8221;", Character.toString((char)226) + Character.toString((char)128) + Character.toString((char)157)); // right double quotation mark dict.setObjectForKey("&#8226;", Character.toString((char)226) + Character.toString((char)128) + Character.toString((char)162)); // bullet dict.setObjectForKey("&#8230;", Character.toString((char)226) + Character.toString((char)128) + Character.toString((char)166)); // ellipsis dict.setObjectForKey("&#8482;", Character.toString((char)226) + Character.toString((char)132) + Character.toString((char)162)); // trademark

       // serialized versions
dict.setObjectForKey("&#160;", "\\U00c2\\U00a0"); // non-breaking space dict.setObjectForKey("&#174;", "\\U00c2\\U00ae"); // registered trademark
       dict.setObjectForKey("&#188;",  "\\U00c2\\U00bc");        // 1/4
       dict.setObjectForKey("&#189;",  "\\U00c2\\U00bd");        // 1/2
       dict.setObjectForKey("&#190;",  "\\U00c2\\U00be");        // 3/4
       dict.setObjectForKey("&#8211;", "\\U00e2\\U0080\\U0093"); // endash
       dict.setObjectForKey("&#8211;", "\\U00e2\\U0080\\U0094"); // emdash
dict.setObjectForKey("&#8216;", "\\U00e2\\U0080\\U0098"); // left single quotation mark dict.setObjectForKey("&#8217;", "\\U00e2\\U0080\\U0099"); // right single quotation mark dict.setObjectForKey("&#8220;", "\\U00e2\\U0080\\U009c"); // left double quotation mark dict.setObjectForKey("&#8221;", "\\U00e2\\U0080\\U009d"); // right double quotation mark
       dict.setObjectForKey("&#8226;", "\\U00e2\\U0080\\U00a2"); // bullet
dict.setObjectForKey("&#8230;", "\\U00e2\\U0080\\U00a6"); // ellipsis dict.setObjectForKey("&#8482;", "\\U00e2\\U0084\\U00a2"); // trademark
       // done
       gremlins = dict.immutableClone();
   }
   return gremlins;
}


public static String convertGremlins(String value) {
   if (value == null)
       return null;
   String key, result = value;
   Enumeration<String> enumeration = gremlins().keyEnumerator();
   while (enumeration.hasMoreElements()) {
       key = enumeration.nextElement();
result = ERXStringUtilities.replaceStringByStringInString(key, gremlins().objectForKey(key), result);
   }
   return result;
}



_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to