首页 > 解决方案 > 为 VB6 应用程序将 UTF8 撇号和引号转换为 ASCII

问题描述

我有一个 VB6 桌面应用程序以及 iOS 和 Android 智能手机应用程序。当有人在 iOS 应用程序中输入诸如 O'Hara 之类的名称时,它会作为不可读的字符传入 VB6 桌面应用程序。我认为这是 UTF8 到 ASCII 的转换问题?我想截取这个数据服务器端并将“和”更改为在 VB6 中可以正确读取的正确字符。我应该如何在 C# .NET 中执行此操作?

标签: c#asp.net.netencodingcharacter-encoding

解决方案


您可以用适合 VB 6 使用的字符集的版本替换有问题的字符:

string value = "The problem string";

value = value.Replace("\u2022", "-");
value = value.Replace("\u2013", "-");
value = value.Replace("\u2014", "-");
value = value.Replace("\u2015", "-");
value = value.Replace("\u2017", "_");
value = value.Replace("\u2018", "'");
value = value.Replace("\u2019", "'");
value = value.Replace("\u201a", ",");
value = value.Replace("\u201b", "'");
value = value.Replace("\u201c", "\"");
value = value.Replace("\u201d", "\"");
value = value.Replace("\u201e", "\"");
value = value.Replace("\u2026", "...");
value = value.Replace("\u2032", "'");
value = value.Replace("\u2033", "\"");

当然,这并不是所有 Unicode 字符的详尽列表。您最终可能会发现需要更换更多,或以某种方式警告它们。


推荐阅读