에 국제 전화 번호 다루기 :나는 다음과 같은 방법으로 연락처 데이터를 사용하는 응용 한 아이폰
- 는 클라이언트에서 SMS를 보내려면이
- 우리의 서버에서 SMS를 보내려면
- 으로
미국에서 잘 작동하지만 국제화에는 일련의 문제가 있습니다. 이것들이 작동하게하는 나의 가정입니다 :
# 1 - 클라이언트로부터 SMS를 보내는 것은 간단합니다. 주소록에있는 숫자를 그대로 사용하고 (정상화하지 않고) OS가 알아낼 수있게하십시오. SMS를 보낼 수있는 주어진 번호로 전화를 걸 수있는 경우가 있습니다 (맞습니까?)
# 2/# 3 - 서버에서 SMS를 보내는 것이 더 복잡합니다. 대부분의 SMS API는 국제 표기법 ("+"접두어 및 국가 코드)을 요구하지만 사용자는 연락처 목록에 다양한 접두사 (지역 코드, 국가 코드 등)가있는 다양한 지역 및 국제 전화 번호를 갖습니다. 따라서 정규화가 필요합니다. 데이터베이스에서 사용자 전화 번호를 일치 시키려면 정규화가 필요합니다.
전화 번호를 정규화하려면 먼저 사용자가 "+" "011"및 "00"접두사를 찾아 전역 번호를 지정할지 여부를 결정해야합니다. 그렇다면 접두사를 제거하고 "+"로 바꾸고 그 번호를 사용하십시오.
숫자가 지역 번호라고 생각하면 자신이 국가 코드를 알아볼 수 있습니다 (신뢰할 수없는 휴리스틱). 이를 위해서는 사용자의 기본 국가 코드를 알아야합니다. iPhone에서는 사용자가 선호하는 지역 (선택 가능)과 사용자의 MCC 및 MNC (위치에 따라 다름)를 얻을 수 있습니다. 그 지역 전화 번호의 대부분이 해당 국가에있을 가능성이 있기 때문에 사용자가 선택한 국가 코드를 향하여 기울고 있습니다.
저는 이것이 전체 숫자를 분석하고 지역 번호 및 기타 구성 요소를 알아 내지 않고 할 수 있다고 생각합니다. 대부분의 국가에서는 자국 코드의 접두사로 "0"을 사용할 수 있다고 가정합니다.
의미가 있습니까? 이것을하기에 더 쉬운 방법이 있습니까?