这个问题不是特定于 Android 的,但我已经包含了标签。
我需要能够以某种标准形式(理想情况下是字符串)存储电话号码,其中可以快速测试/评估相等性(因此字符串是理想的)
我已经找到了一些答案,最好的答案指向http://developer.android.com/reference/android/telephony/PhoneNumberUtils.html(我可以使用库为我做这件事)
但这还不够好,我尝试了各种格式数字,了解了可编辑工厂以使用该类中的一些静态方法,但它们似乎没有返回我期望的形式。
我期待像电话号码哈希这样的东西,代表相同号码的两个输入将在这种“标准形式”中产生相同的结果,并且可以拨打这种标准形式并且很好。我认为所有各种 +s 之类的都是这种标准形式的简写。
我不确定现在是否存在这样的事情。
我知道有些东西的意思是“当前区域”(或国家),这就是为什么固定电话可以省略区号的原因,我希望有一个函数可以返回当前位置的格式(但这不适用于手机,如果它例如,是预先设置区号的固定电话,这将(更接近)我一直假设存在的“标准表格”)
我很确定存在一些完整的电话号码形式,考虑电话系统的工作原理(我推断我承认)应该有一个表格可以在整个星球上唯一标识一个号码,当这不是情况下(例如从没有区号的固定电话拨打本地电话),这是一种优化。
所以我有两个问题:
如何将电话号码“扩展”为该号码的唯一字符串,以便将该号码的任何替代形式(带空格、0 或 +44 ....)“扩展”为该唯一号码?
是否有任何 ISO(/IEC?)(O 代表什么?)标准文件以及向公众开放的草案?我已经阅读了 Wikipedia 页面(很久以前,我花了很多时间进行 wiki 浏览,并打开了数百个标签),但它涵盖了历史或一些有关格式的信息),我想了解更多关于这件事的信息我认为理所当然已经有 8 年左右的时间了。
此外,为什么 Windows Phone 8 是一个标签?让 12 位骄傲的 Lumina 拥有者不感到被冷落?(建议作为标签!)
附录
不幸的是,android中任何用于规范电话号码的API都没有解决方案(这包括libphonenumber),我寻求找出答案导致了一些有趣的阅读:
http://en.wikipedia.org/wiki/Panel_switch
http://en.wikipedia.org/wiki/Nonblocking_minimal_spanning_switch
http://en.wikipedia.org/wiki/Telephone_exchange
而且我仍然无法得出结论,数字不存在某种“完整形式”。
我不敢创建一个简单地将 +44 换成 0 等的解决方案。