How to Handle SMS Special Character Issues
This article explains why certain characters in SMS messages display as a question mark (?) upon delivery, how to investigate using the REACH platform, and how to respond to the customer. Intended for internal support agents handling SMS character encoding tickets.
Overview
This KB article is for support specialists who receive customer inquiries where a character in an SMS message — such as a hyphen or dash — is displaying as a '?' upon delivery to the recipient's phone.
The root cause is that SMS messaging uses a character encoding standard called GSM-7, which only supports basic characters. Characters outside this set — such as an en dash (–) — are not recognized by the carrier and are replaced with a '?' during delivery. This is standard carrier behavior and is NOT a platform defect.
Common Customer Questions:
- A character in my SMS message is showing as '?' — why?
- The hyphen in our date range (e.g., April 21-22) is being replaced with a question mark.
- What special characters are supported in SMS messages?
- Is this a platform issue or a carrier issue?
Important Note
This KB uses City Utilities as the example client. The same investigation and resolution steps apply to all other clients.
Use the correct login URL and credentials for each client when following these steps.
Prerequisites & Key Concepts
Before you begin, ensure you have the following:
- Access to the City Utilities REACH Production environment at https://reach-prod-ui.reach-pc.com/#/cityutilities/login
- Login credentials from the Confluence credentials page
- The original SMS message content as sent by the customer
- The specific character showing as '?' and the date the message was sent
What is GSM-7?
SMS messaging uses a character encoding standard called GSM-7. This set only supports basic characters such as standard letters (A–Z, a–z), numbers (0–9), and a limited set of punctuation marks. Any character outside this set is NOT supported and will be replaced with a '?' by the carrier upon delivery.
En Dash vs Hyphen-Minus — What is the Difference?
| Character | Symbol | Unicode | GSM-7 Supported? |
|---|---|---|---|
| Standard Hyphen-Minus | - | - | ✅ Yes — Safe to use |
| En Dash | – | – | ❌ No — Converts to '?' |
| Em Dash | — | — | ❌ No — Converts to '?' |
Key Rule: The en dash (–) looks almost identical to a hyphen (-) but is a different Unicode character. It is commonly inserted automatically by Microsoft Word, Google Docs, or when copying and pasting from a website or formatted document.
Step-by-Step Instructions
Follow these steps to investigate, reproduce, and confirm the SMS special character issue:
-
Read the Ticket and Identify the Issue: Before opening any tool, carefully read the full ticket description and identify the character showing as '?'. Check all screenshots or attachments shared by the customer. Confirm you have the original SMS message content, the specific character showing as '?', and the date the message was sent.
⚠ Important: Never ask the customer for information already visible in their screenshots or ticket. Always read everything first. -
Log In to the REACH Platform: Open your browser and go to https://reach-prod-ui.reach-pc.com/#/cityutilities/login. Enter the login credentials from the Confluence credentials page.
-
Navigate to Analytics: Once logged in, click on the Analytics icon in the left sidebar.
-
Filter and Find the Customer's Message: Click on the Messages tab at the top (next to Campaigns). Apply the following filters: Program Category (e.g., Natural Gas), Channel: SMS, and Date Range matching when the customer sent the message.
Then click the View link on the relevant message row to open the message details.
-
Verify the Message Content: The Message Details page will open showing the full message content. Compare the message content here with the customer's original screenshot. The en dash character (–) will be visible here — e.g., 'April 21–22'.
-
Run a Test Using SMS-Draft to Reproduce the Issue: In the left sidebar, click on the Campaigns icon (paper plane icon).
Expand the notification tree: Notifications → Natural Gas → Gas Misc (6000) → Notification types → Gas Emergency Alert (6001) → Notification Templates → English → SMS
Under SMS, click on SMS-Draft.
The SMS-Draft form opens. Fill in Name (e.g., Test) and Body (paste the customer's original message content exactly as sent — including the en dash).
Click Test Draft. A popup will appear. Enter the Google Voice number and click Send.
Check the received SMS on the Google Voice number.
⚠ Key Finding: The '?' in the received SMS confirms the issue is caused by the en dash (–, –). The carrier replaced the unsupported Unicode character with '?'. This is NOT a platform defect. -
Run a Validation Test with a Keyboard-Typed Hyphen: Go back to the SMS-Draft form. In the Body field, type the message again but this time use a standard keyboard hyphen ( - ) instead of the en dash. Type it directly from your keyboard — do NOT copy-paste from Word or Google Docs. Click Test Draft, enter the Google Voice number, and click Send. If the message is received correctly without any '?' — this confirms the issue ONLY occurs with the Unicode en dash and NOT with the standard keyboard hyphen.
✓ Conclusion: A validation test with a keyboard-typed hyphen confirms this is expected SMS carrier behavior and not a platform defect. -
Identify the Exact Character Using the Unicode Converter Tool: Open the tool at https://iotools.cloud/tool/text-to-unicode-converter/. Paste the en dash (–) — result shows
3— NOT GSM-7 supported.Now type a standard keyboard hyphen ( - ) — result shows
d— IS GSM-7 supported. -
Verify Encoding Using SMS Character Counter: Open the tool at https://charactercounter.com/sms-character-counter. Paste the customer's original message content and check the Encoding column. If it shows 'Unicode' — the message contains an unsupported character. If it shows 'GSM-7' — all characters are supported.
Troubleshooting & Common Issues
Use the table below to determine the correct action based on what you observe during investigation:
| What You Observe | Root Cause | Platform Issue? | Action Required |
|---|---|---|---|
| Character shows as '?' in received SMS | Unsupported Unicode character (en dash –) | ❌ No — carrier behavior | Advise customer to use standard keyboard hyphen (-) in their messages. |
| Issue reproduces in test with en dash | Confirmed unsupported character in message content | ❌ No — content issue | Run validation test with keyboard hyphen (Step 7) and provide workaround. |
| Issue does NOT reproduce with keyboard hyphen | Confirmed content issue, not platform defect | ❌ No — content issue | Provide workaround and close ticket. |
| Issue does NOT reproduce in either test | May be device-specific or carrier-specific rendering | ⚠ Possible — investigate further | Escalate internally and gather more details from customer. |
Guidelines
What to Avoid
- ✕Do not close the ticket as a platform defect — this issue is always caused by unsupported Unicode characters in the message content.
- ✕Do not ask the customer for information already visible in their screenshots or ticket — always read everything first.
- ✕Do not copy-paste the hyphen from Word or Google Docs during the validation test — type it directly from your keyboard.
- ✕Do not skip the validation test (Step 7) — always run it to confirm the issue is content-related before responding to the customer.
- ✕Do not close the ticket if the issue does not reproduce in either test — escalate internally and gather more details.
Customer Response Template
Once you have confirmed the root cause, use the template below to respond to the customer:
Hi [Customer Name],
Thank you for your patience while we investigated this.
We have identified the root cause. The character in your message was an en dash (–) rather than a standard hyphen-minus (-). SMS messaging uses a character set called GSM-7, which only supports basic characters. The en dash is not part of this set, so it was converted to a '?' upon delivery.
This type of character is commonly inserted automatically by word processors like Microsoft Word or Google Docs, or when copying and pasting text from a website or document.
To prevent this in future messages, please use a standard hyphen-minus ( - ) typed directly from your keyboard. We recommend composing SMS messages in a plain text editor such as Notepad (Windows) or TextEdit in plain text mode (Mac).
Please let us know if you have any further questions.
Thank you,
[Your Name] | Product Support Specialist
Frequently Asked Questions (FAQs)
Q: Why does the hyphen show as '?' even though I typed it correctly?
A: The most likely cause is that the hyphen was typed or pasted from a word processor such as Microsoft Word or Google Docs, which automatically converts a typed hyphen into a typographic en dash (–). The en dash is not supported by GSM-7 encoding and is replaced with '?' by the carrier. Always type hyphens directly from your keyboard and compose SMS content in a plain text editor like Notepad.
Q: Is this a bug in the REACH platform?
A: No. This is standard SMS carrier behavior. The REACH platform sends the message content exactly as provided. The '?' replacement happens at the carrier level because the en dash (–, –) is not part of the GSM-7 character set. This is confirmed by running a validation test with a keyboard-typed hyphen, which delivers correctly.
Q: Who do I contact if the issue persists after all troubleshooting steps?
A: If the issue does not reproduce in either the en dash test or the keyboard hyphen validation test, do not close the ticket. Escalate internally with full investigation notes, screenshots, and test results for Engineering to investigate further.
References & Related Tickets
For internal team use: Reference past Jira or Zendesk tickets related to this article.
- ZD-149202 City Utilities ticket — en dash character in SMS message displaying as '?' upon delivery due to GSM-7 encoding limitation.
- CONFLUENCE City Utilities REACH Login Credentials & URL Information page.
- Unicode Tool Unicode converter tool used to identify unsupported characters in message content.
- SMS Counter SMS Character Counter used to verify GSM-7 vs Unicode encoding of message content.
Comments
0 comments
Please sign in to leave a comment.