Gracias a Nick van Esch en C# How to replace Microsoft's Smart Quotes with straight quotation marks?
Aquí está el código ('\ u2019' es 'en MS Word), es útil porque cubre personajes problemáticos de palabras
if (buffer.IndexOf('\u2013') > -1) buffer = buffer.Replace('\u2013', '-');
if (buffer.IndexOf('\u2014') > -1) buffer = buffer.Replace('\u2014', '-');
if (buffer.IndexOf('\u2015') > -1) buffer = buffer.Replace('\u2015', '-');
if (buffer.IndexOf('\u2017') > -1) buffer = buffer.Replace('\u2017', '_');
if (buffer.IndexOf('\u2018') > -1) buffer = buffer.Replace('\u2018', '\'');
if (buffer.IndexOf('\u2019') > -1) buffer = buffer.Replace('\u2019', '\'');
if (buffer.IndexOf('\u201a') > -1) buffer = buffer.Replace('\u201a', ',');
if (buffer.IndexOf('\u201b') > -1) buffer = buffer.Replace('\u201b', '\'');
if (buffer.IndexOf('\u201c') > -1) buffer = buffer.Replace('\u201c', '\"');
if (buffer.IndexOf('\u201d') > -1) buffer = buffer.Replace('\u201d', '\"');
if (buffer.IndexOf('\u201e') > -1) buffer = buffer.Replace('\u201e', '\"');
if (buffer.IndexOf('\u2026') > -1) buffer = buffer.Replace("\u2026", "...");
if (buffer.IndexOf('\u2032') > -1) buffer = buffer.Replace('\u2032', '\'');
if (buffer.IndexOf('\u2033') > -1) buffer = buffer.Replace('\u2033', '\"');
No se convierten aquí, las 'citas inteligentes' están bien. StackOverflow convierte las comillas simples en "" en los títulos de las preguntas (polémicamente), pero deja solo el texto de la pregunta. – bobince
Por cierto, ¿existe realmente una buena razón para reemplazarlos con comillas simples? No son personajes especiales de "MS Word", son caracteres Unicode perfectamente válidos que normalmente deberían manejarse bien con cualquier aplicación que pueda manejar Unicode. – bobince
@bobince no todas las aplicaciones manejan unicode correctamente, pero a menudo las personas pegan texto que escribieron en ms-word y es bueno poder conservar las comillas (convirtiéndolas en comillas regulares) que quitarlas por completo. – dan