【问题标题】:What is the international format for telephone numbers电话号码的国际格式是什么
【发布时间】:2010-10-27 17:42:07
【问题描述】:

是否有适合所有号码的电话号码格式? (比区号 3 个数字和其余 7 个数字更灵活的东西)

【问题讨论】:

    标签: data-modeling


    【解决方案1】:

    始终将数字与国家/地区代码一起存储,以便在显示时能够明确并为读者正确格式化。

    【讨论】:

      【解决方案2】:

      这被标记为数据建模......所以我将解决这个方面。

      电话号码,无论国家/地区,都应始终存储为不带格式的字符串 (eg. "9083429876")。

      我看到人们试图将这些存储为带格式的字符串......这通常会导致灾难。在某个地方,有人会希望这些数字的格式不同。然后你不仅要为它们编写一个格式化函数,还要为它们编写一个非格式化函数。约萨。

      我还看到有人试图将这些存储为 INT64(或 BIGINT)。好吧,好吧,但为什么呢?没有人会显示未格式化的电话号码。要格式化它,你必须把它变成一个字符串。有些人试图争辩说它是出于分类目的,但这也行不通。对电话号码进行排序从来都不是有用的操作。根据区号过滤数字很有用 - 但按数字排序顺序返回所有数字?从来没用过。

      我看到的第三个不好的做法是人们将数字的每个组成部分存储在单独的字段中。再次,不好。当您开始在其中戳国际号码时,这些字段变得毫无意义。例如:您认为塞内加尔使用区号吗?

      因此,作为临别之念,我留给您的是:由于每个国家/地区都有自己的一组数字(实际上是符号) - 应该考虑并注意如何格式化它们以供显示。

      【讨论】:

        【解决方案3】:

        所有电话号码的格式为:

        • 国家代码(1-3 位)
        • 其余的

        电话号码的位数应为 15 或更少。

        另见wikipedia

        【讨论】:

          【解决方案4】:

          http://en.wikipedia.org/wiki/E.164

          http://www.kropla.com/dialcode.htm

          编辑:应该在我实际提交之前检查我粘贴的内容。

          【讨论】:

          • 第二个链接不见了。第一个是在应用程序中使用的标准吗?
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-01-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-12-21
          • 2016-04-05
          相关资源
          最近更新 更多