6

SQL クエリから渡された情報に基づいてファイル名を検索するために、C# で小さなアプリを作成しています。SQL クエリから渡されたデータ内に、時折 (私の会社への海外からの訪問者のために複数のインスタンスが発生する可能性があります)、国際文字を含む名前が含まれます。私たちが持っているファイル名は、特殊文字を含まない英語のアルファベットです。

この検索を完了するために、国際文字を純粋な英語のアルファベット文字に変換する方法を見つけようとしていますか? これは db クエリを介して実現できますか?それともアプリ コードを介して実行する必要がありますか?

例えば:

Herve は Herve に変換する必要があります

または

マナナはマナナに変換する必要があります

4

2 に答える 2

13
var s1 = ToASCII("Hervé");
var s2 = ToASCII("Mañana"); 

string ToASCII(string s)
{
    return String.Join("",
         s.Normalize(NormalizationForm.FormD)
        .Where(c => char.GetUnicodeCategory(c) != UnicodeCategory.NonSpacingMark));
}
于 2012-12-07T19:22:51.460 に答える
0

MS-SQL サーバーに対して実行している場合は、オンライン ヘルプの COLLATE を参照してください。オンザフライでエンコーディングを機能的に変更できます。

于 2012-12-07T18:57:50.560 に答える