英国邮政编码范围计算

本文关键字:计算 范围 邮政编码 英国 | 更新日期: 2023-09-27 18:30:23

在用 C# 编写的物流软件中,我需要检查给定的邮政编码是否在数据库的一个范围之间。

以德国为例

范围:47000-48000给定邮政编码:47057结果:真

对于数字邮政编码,没关系。但是英国的邮政编码呢?W11 2BQ 是来自伦敦的示例邮政编码。

其中一个基本思想是,通过将每个字符转换为其ASCII代码并简单地从左到右书写来将邮政编码转换为数字。

所以

W11 2BQ -> 87 49 49 32 50 66 81 -> 87,494,932,506,681

所以一个简单的邮政编码变成了一个非常大的数字,这让我感到不安。 英文邮政编码的大小可能会有所不同(最多 8 个字符),因此这使得生成的数字更大。

我使用 sql 服务器来检查给定的邮政编码是否在范围内。

是否有任何官方技术来处理英国邮政编码以进行范围计算?

最好阿尔珀

英国邮政编码范围计算

"

邮政编码"是一个完全任意的系统,而不是试图针对它进行编码 - 除非您的目标是编写一个全面的邮政编码理解库 - 我强烈建议您查找/付费/窃取可以满足您的要求。

如果有帮助,英国邮政编码的基本规则是(据我所知):

[A-Z]{1,2} - 2 个字符的代码,表示当地的分拣仓库''d - 分拣仓库管辖区的细分[必填项]''d[A-Z]{2} - 由一组 10-100 个地址占用的连续区域的字母数字代码

如果我的总结是错误/不完整的,我不会感到惊讶。我看到的所有邮政编码都是我提到的形式,但我不知道实际规则,所以可能还有其他不同的格式。它只是为了对系统的性质进行广泛的评估。

GeoNames Web Service 可能是一个很好的起点。应该可以通过他们的API以某种方式验证邮政编码。我认为如果您想编写自己的验证逻辑,您也可以导出数据库。

我不认为将邮政编码转换为ASCII是一个好主意。原因很明显。如果你有一个像 1210121 这样的 ASCII 转换值(只是一个示例),问题是分开为 (12) (10) (121) 或 (12) (101) (21)。这似乎是很多工作,收获如此之小。

虽然,你不能使用SQL??

 select * from ZIPTable where zipcode IN ('G4543','G3543')

注意:您可以从子查询中获取邮政编码值。