Some clarifications... ISO 3166-2 defines code elements for (normally) first-level country subdivisions (states, provinces, regions, districts, etc.), but these almost never correlate in general to cities. In some countries, the name of a subdivision may be the same as that of its capital or another city, but that leaves out all the other cities within that subdivision, and in any case this convention very seldom applies to Northern America.
Telephone area codes are not relevant in this regard, because they also may not correlate to cities per se, so again the desired granularity is not available. Area codes in Northern America may apply to an entire state or province, hundreds of thousands of square kilometers in size. (Number portability and calling plans are even less relevant to this.) In addition to the other standards given, there is UN/LOCODE [1], which provides code elements for "trade and transport locations," which may or may not correlate to "cities" depending on your needs. [1] http://www.unece.org/cefact/locode/welcome.html -- Doug Ewell | Thornton, CO, US | ewellic.org