Phone Number Formatter: Convert Any Number to E.164, International and RFC 3966
Turn messy phone numbers into clean E.164, international, national and RFC 3966 formats for 45+ countries with the free online Phone Number Formatter.
Table of Contents
Phone Number Formatter: Convert Any Number to E.164, International and RFC 3966
Anyone who has ever imported a contact list knows the pain: the "phone" column arrives as a lawless mix of 0812345678, 081-234-5678, (081) 234 5678, +66 812345678, and the occasional 0066 81 234 5678. Feed that straight into a database and your deduplication logic fails, your SMS API rejects the payload, and searching for a customer by number finds nothing because half the rows don't match the query format. This is exactly the problem the free Phone Number Formatter was built to solve.
Paste a number in practically any shape and the tool returns all four standard formats at once: E.164, international, national, and an RFC 3966 tel: link. It supports 47 countries with automatic country detection from the dial code, validates the number length against each country's rules, and runs entirely in your browser β 100% client-side, so no number ever leaves your machine.
In this guide we'll walk through what the tool does, when to use each of the four formats, and the real-world workflows where it saves the most time, from CRM imports to click-to-call buttons on a storefront.
Why Use Phone Number Formatter?
- Normalize messy input in one click: spaces, dashes, parentheses, trunk prefixes and 00 international prefixes are all stripped and rebuilt into a single canonical standard.
- Kill duplicates at the source: the same number written five different ways becomes one identical string, so deduplication and uniqueness constraints actually work.
- Stop silent SMS failures: most SMS and OTP providers accept E.164 only β a wrongly formatted number means messages quietly vanish and you pay for the attempt anyway.
- Coverage for 47 countries: not just NANP numbers. Thailand, Vietnam, India, Brazil, Germany, Japan and 40+ others are handled with each country's own dial code, trunk prefix and grouping rules.
- Privacy by design: everything runs client-side in the browser. Sensitive contact lists never touch a server, which keeps compliance and security teams happy.
- Free and instant: no sign-up, no install, no code. Open the page, paste a number, copy the result.
Key Features
| Feature | What it does |
|---|---|
| Accepts any common input | National (0812345678), spaced/dashed/parenthesized, trunk-prefixed, international (+66812345678) and 00-prefixed forms |
| Auto country detection | Reads the dial code to identify the country, or pick one manually from the 47-country list |
| Four formats at once | E.164, International, National, and RFC 3966 tel: link in a single pass |
| Length validation per country | Thailand 8β9 digits, US 10 digits, etc. β invalid lengths are flagged, not silently passed |
| Trunk prefix handling | Strips or restores the correct prefix: 0 for most countries, 1 for US/Canada, 8 for Russia |
| Country-specific grouping | Thailand 2-3-3, US 3-3-4, UK 4-6 β output matches local reading conventions |
| One-click copy | Each format has its own copy-to-clipboard button |
| 100% client-side | All parsing happens in the browser; nothing is uploaded |
A few details worth calling out:
- Grouping is not just cosmetic. Well-grouped numbers are easier to scan and read back over the phone, which reduces transcription errors when the output ends up on an invoice or a business card.
- Length validation is the first line of defense. A flagged number is a number you should verify with its owner before it enters your system β catching it at import costs seconds, catching it after a failed OTP campaign costs hours.
- Trunk prefixes trip up naive scripts. A regex that always strips a leading 0 corrupts US numbers and misses Russia's 8. The tool applies the right rule per country so you don't have to maintain that table yourself.
How to Use
- Open the tool at onlinetoolsforge.com/en/tools/phone-number-formatter β no account or installation needed.
- Paste the number into the input field in whatever form you have: 0812345678, 081 234 5678, +66812345678, or even 0066812345678. The parser strips everything non-essential first.
- Pick the country or leave it on auto. With auto detection, a +66 prefix instantly identifies Thailand; a manual override helps when the number has no international prefix at all.
- Read all four results rendered together. For the Thai mobile 0812345678 you get: E.164 +66812345678, International +66 81 234 5678, National 081 234 5678, and RFC 3966 tel:+66-81-234-5678.
- Copy the format you need with its dedicated button and paste it straight into your database, API payload, or HTML.
If the number's length doesn't match the country's rules, the tool flags it clearly instead of returning a plausible-looking wrong answer β exactly what you want when cleaning data at scale.
Understanding E.164, International, National and RFC 3966 Formats
E.164 (+66812345678) is the ITU-T international standard and the canonical form of a phone number: a +, the country dial code, and the subscriber number concatenated with no spaces, dashes or parentheses. This is the format to store in databases and send through APIs. Because there is exactly one valid string per number, E.164 makes equality checks, lookups and deduplication reliable β and most communication providers accept nothing else.
International (+66 81 234 5678) is E.164 with digit grouping added for human readability. It's the right choice for display surfaces: websites, PDFs, quotes, email signatures. The grouping follows each country's convention, so the number keeps a familiar rhythm for local readers. Whenever the value is being stored or transmitted, though, strip it back down to E.164.
National (081 234 5678) is what people inside the country expect to see and dial: the trunk prefix (0 in Thailand) followed by the grouped subscriber number. Use it for domestic ads, signage, business cards and CRM screens where agents call locally. The trap is that trunk prefixes differ β 1 in the US and Canada, 8 in Russia, none at all in Italy β so never treat a national-format number as globally valid.
RFC 3966 (tel:+66-81-234-5678) is the URI scheme for telephone numbers, used to build click-to-call links. Within the URI, hyphens separate digit groups per the spec:
<a href="tel:+66-81-234-5678">Call 081 234 5678</a>
On mobile, tapping the link opens the dialer with the number pre-filled. Keeping the international form inside href means roaming visitors can still connect, while the visible label can stay in friendly national format.
A one-line cheat sheet: store and transmit = E.164, display = International, domestic dialing = National, click-to-call = RFC 3966.
Practical Use Cases
Cleaning CRM imports before they pollute your data
Sales teams export contacts from wherever they can, and every row writes phone numbers differently. Importing that raw into HubSpot or Salesforce guarantees two problems: duplicate accounts (because +66812345678 and 081 234 5678 look like different people) and broken search. Normalize every number to E.164 first, and let the length validator flag the rows worth chasing down with the customer instead of guessing.
Hardening SMS and OTP payloads
OTP flows fail at the worst times, and the cause is usually not your code β it's a national-format number sent where an E.164 string was expected. Before deploying, paste a batch of staging numbers through the tool and you'll instantly see which are too short, too long, or contain stray characters for their country. That thirty-second check prevents silently burnt SMS credits and support tickets from users who never received their code.
Building click-to-call links for a storefront
A contact page should let mobile visitors tap-to-dial, which takes an RFC 3966 tel: link. Use the international form in the href so foreign customers on roaming can connect, and render the national format as the visible text so it reads naturally for local customers β both correctness and friendliness from one formatted number.
Validating checkout forms in e-commerce
Free-text phone fields on checkout forms collect everything: missing digits, mystery spacing, unreachable numbers. Running the entered number through length validation before the order is saved reduces failed deliveries and the expensive manual follow-up they trigger. Stores that store numbers in E.164 from day one also hand off cleaner data to logistics partners, with no per-order format conversion.
Best Practices
- Store E.164 in the database and format at the edge. Keep one canonical value, derive international/national display strings on render. One source of truth beats three drifted copies.
- Validate at entry, not at exit. Catch malformed numbers at the form or the import job β the earlier the error, the cheaper the fix.
- Never hardcode one country's rules. "Always strip the leading 0" corrupts NANP numbers. Lean on per-country logic (dial code, trunk prefix, valid lengths) instead of assumptions.
- Normalize in bulk before imports. Run the whole batch first and look at the failure rate before anything touches production; a 15% flag rate means the source data needs work, not your importer.
- Keep the dial code separate where your schema allows. Splitting country code from subscriber number makes multi-country reporting and future format changes far easier.
- Re-test when you change SMS providers. Some providers accept loose formats, others are strict E.164-only. Don't assume the new vendor behaves like the old one.
Ready to tame the messiest column in your contact list? Open the Phone Number Formatter, paste the gnarliest number you have, and watch it snap into all four standards at once β free, no sign-up, and the number never leaves your browser.
Related Tools You Might Like:
- Credit Card Validator β validate card numbers with the same paste-and-check workflow
- Email Validator β catch malformed email addresses before they hit your CRM
- JSON Formatter β format and validate the API payloads that carry your contact data
Happy formatting!
Frequently Asked Questions
Q: Is the Phone Number Formatter really free?
A: Yes β 100% free with no sign-up and no usage limits. Open the page and format as many numbers as you need.
Q: Are my phone numbers uploaded to a server?
A: No. All parsing and formatting runs client-side in your browser. The numbers you paste never leave your device, which makes the tool safe for sensitive customer data.
Q: How many countries are supported?
A: 47 countries, including the US, UK, Thailand, Australia, India, Vietnam, Singapore, Malaysia, Japan, South Korea, China and more. Country detection is automatic from the dial code, or you can select one manually.
Q: What happens if a number has the wrong length?
A: The tool flags it instead of returning a result, because a number that is shorter or longer than the country's standard is usually a typo. Verify it with the owner before using it in production.
Q: Which format should I store in my database?
A: E.164, always. It is the canonical form β unique, comparable and accepted by virtually every SMS and telephony API. Convert to international or national format only at display time.