我有很多需要输出的文本,其中包括来自多种语言的各种字符.有时我需要输出除Unicode之外的字符编码(例如,Shift-JIS或ISO-8859-2)的文本,以匹配它将要访问的页面.
如果文本具有编码无法处理的字符(例如,ISO-8859-2编码输出中的日文字符),则输出结果为奇数字符.我可以逃脱它们,但我宁愿这样做只有在真的有必要的时候.
所以,我的问题是:如果编码可以处理我的字符串中的所有字符,是否有一种方法可以提前告诉我?
编辑:我认为EncoderFallback可能是我问的问题的正确答案.不幸的是,它似乎并不适合我的特殊情况.我的想法是将字符转换为它们的HTML实体等价物(例如,モ而不是モ).但是,编码器只转换它找到的第一个这样的字符,如果我设置了Response.ContentEncoding,它根本就不会调用我的EncoderFallback.
您可以编写自己的EncoderFallback类,在编码之前将其分配给编码器.
使用这种方法,您无需进行任何高级操作(可能只是处理输出字符串以查找问题).
相反,您的Fallback类只需要处理编码没有字符值的替换.