我们的一些用户使用的电子邮件客户端不能处理Unicode,即使在邮件头中正确设置了编码等。
我想让他们收到的内容“正常化”。我们遇到的最大问题是用户将Microsoft Word中的内容复制粘贴到我们的web应用程序中,然后web应用程序通过电子邮件转发这些内容-包括分数、智能引号和Word为您插入的所有其他扩展Unicode字符。
我猜这个问题没有明确的解决方案,但在我坐下来开始编写大型查找表之前,有没有什么内置的方法可以让我开始呢?
基本上涉及到三个阶段。
首先,从其他正常字母中剥离重音-此is here的解决方案
This paragraph contains “smart quotes” and áccénts and ½ of the problem is fractions
转到
This paragraph contains “smart quotes” and accents and ½ of the problem is fractions
其次,将单个Unicode字符替换为等效的ASCII字符,以提供:
This paragraph contains "smart quotes" and accents and ½ of the problem is fractions
这是我希望在我实现自己的解决方案之前有一个解决方案的部分。最后,用合适的ASCII序列替换特定的字符--1/2到1/2,等等--我非常肯定这不是任何Unicode魔术本身所支持的,但是有人可能已经写了一个合适的查询表,我可以重复使用。
有什么想法吗?
发布于 2012-10-16 03:56:57
在使用最初在Word中构建的字符串列表时,我自己也遇到了一些问题。我发现使用一个简单的"String".replace(current char/string, new char/string)
命令就可以完美地工作。我使用的确切代码是智能引号,或者更准确地说: left ",right ",left ',and right‘如下所示:
StringName = StringName.Replace(ChrW(8216), "'") ' Replaces any left ' with a normal '
StringName = StringName.Replace(ChrW(8217), "'") ' Replaces any right ' with a normal '
StringName = StringName.Replace(ChrW(8220), """") ' Replace any left " with a normal "
StringName = StringName.Replace(ChrW(8221), """") ' Replace any right " with a normal "
我希望这篇文章能帮助那些仍然有这个问题的人!
发布于 2011-05-29 02:41:20
您不应该尝试将Unicode转换为ASCII,因为您最终会遇到更多问题而不是解决问题。
这就像尝试将1,114,112个代码点(Unicode 6.0)放入128个字符中。
你认为你会成功吗?
顺便说一句,Unicode中有很多引号,不仅是你提到的那些引号,而且如果你无论如何都想要进行转换,请记住转换将取决于地区。
检查ICU -包含最完整的Unicode转换例程。
https://stackoverflow.com/questions/6163646
复制相似问题