按理说现在Office都支持Unicode,怎么写都不会乱码。
实际上,Visio里面还存在,在图的名字上如果用日文就会乱码。
而且明明选好的日文,再打开又是中文了。郁闷

还好Office现在都有xml格式,保存后的xml为Unicode编码,里面的乱码就是日文了。
1. 先剔除xml: 连续的char大于oxff是汉字语句
2. 乱码转中文:Encoding.GetEncoding("SHIFT_JIS").GetString(Encoding.Default.GetBytes(word))
3. 自动区分乱码日文:根据转码前后的字符数变化。正确中文转日文后会变长,乱码日文转日文后不变
4. 上面长度判断法会有少数误判,做个保留词汇表,用于剔除误判的。

28M的xml扫描一次3秒,转换一次5秒。转换后基本正确,打开后再保存为二进制格式减肥。
代码和程序:https://files.cnblogs.com/steeven/Translator.rar
posted on 2004-06-29 13:45  steeven  阅读(5477)  评论(1编辑  收藏  举报