c#system显示国家/地区名称,但未在手机上显示国家/地区代码

时间:2014-01-28 14:44:17

标签: c#

如何在没有国家/地区代码的情况下识别电话号码?  DataTable cnc = CNC();             DataTable countrySwitch = CS();

        DataRow[] rows;
        //string clngnum = dReader["DPC"].ToString();
        foreach (DataRow dr in Mdt.Rows)
        {
            try
            {
                string ID = dr["ID"].ToString();
                //dr["DestinationCountry"] = CountrySwitch(dr["DPC"].ToString());

                string Callingnum = dr["CallingNumber"].ToString();
                string CalledNum = dr["CalledNumber"].ToString();

                if (Callingnum != "" && CalledNum != "" && Callingnum != "0" && Callingnum != "00" && Callingnum != "000")
                {

                    while (Callingnum.Substring(0, 1) == "0")
                        Callingnum = Callingnum.Remove(0, 1);

1 个答案:

答案 0 :(得分:0)

总之,你不能。世界各地有多种电话号码长度规格,缺乏国家代码可能会使其解决方案不确定。

例如,美国遵循North American Numbering Plan,其格式如下:

+1(NPA)NXX-xxxx

其中:

  • 1 - 美国国际国家/地区电话代码
  • NPA - 编号计划区号
  • NXX - 中央办公室(交换)代码
  • xxxx - 订阅者编号

有几个国家遵循相同的模式,并使用相同的代码用于不同的规范 - 例如,巴西编号计划中的NPA等效字段与州/市相关,而NXX等效字段可能在3到5之间( !)数字。所以,让我们假设这个有效的巴西数字:

(15) 93935-5555

和这个美国号码(这个NPA不存在,只是fyi):

[+1]-(593) 935-5555

所以,不仅你不能因为模式重叠,而且如果你不确定你有完整的数字,它可能会解决到错误的国家。