たとえば、CLCL クリップボード マネージャーによって行われる、ある種の変換/マッピングが必要です。
それが何をするかはそのようなものです:
次の Unicode テキストをコピーします: ūī
そして、CLCL はそれを次のように変換します: ui
そのような変換を行うためのテクニックはありますか? または、変換に使用できるマッピング テーブルがあるかもしれません。たとえば、シンボル ū が u にマップされているとします。
アップデート
助けてくれてありがとう。これが私が持ってきたものです(2つのソリューションのハイブリッド)。1つはErik Schierboomによって投稿され、もう1つはhttp://blogs.infosupport.com/normalizing-unicode-strings-in-c/#comment-8984から取得されました
public static string ConvertUnicodeToAscii(string unicodeStr, bool skipNonConvertibleChars = false)
{
if (string.IsNullOrWhiteSpace(unicodeStr))
{
return unicodeStr;
}
var normalizedStr = unicodeStr.Normalize(NormalizationForm.FormD);
if (skipNonConvertibleChars)
{
return new string(normalizedStr.ToCharArray().Where(c => (int) c <= 127).ToArray());
}
return new string(
normalizedStr.Where(
c =>
{
UnicodeCategory category = CharUnicodeInfo.GetUnicodeCategory(c);
return category != UnicodeCategory.NonSpacingMark;
}).ToArray());
}