簡體   English   中英

.Net:獲取德國國家名稱的ISO3166代碼

[英].Net: get ISO3166 code for German country name

我有2種方法:一種將給定的ISO3166代碼轉換為德語中相應國家的名稱(例如,從“ de-DE”到“ Deutschland”)。 這很好。 現在,我需要一種可以替代方法的方法。 當前看起來像這樣:

  public static string GetISO3166CodeForGermanCountryName(string countryName)
    {
        if (string.IsNullOrEmpty(countryName) || countryName.Length == 2)
            return countryName;

        Thread.CurrentThread.CurrentCulture = new CultureInfo("de-AT");

        CultureInfo cInfo = cultures.FirstOrDefault(culture => new RegionInfo(culture.LCID).DisplayName == countryName);

        if (cInfo != null && cInfo.Name.Contains("-"))
            return cInfo.Name.Split('-')[1]; //take the 2nd part of the culture info name (e.g. "de-AT" --> "AT")
        else
            return null;
    }

這在我的開發機上可以正常工作,因為已安裝的.Net框架是德語的。 但是,在我們的活動服務器(Windows Server 2012)上,該方法為所有輸入返回null。 發生這種情況是因為那里安裝的.Net框架是英文的。 我試圖通過為.Net Framework 4.5安裝德語包來解決此問題,但這沒有幫助。 誰能建議其他解決方案(或適用於4.6的有效語言包)?

由於找不到更簡單的解決方案,因此我使用了* csv列表,其中包含來自以下國家/地區的所有國家及其名稱: https : //www.laenderdaten.info/downloads/

基於此,我創建了一個助手類,該助手類在列表中搜索給定的國家/地區名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM