---
title: "The Complete GSM 03.38 Character Set"
---

The Complete GSM 03.38 Character Set: Standard Chars, Extension Table, and Traps: SMSRiver

- [Skip to main content](#main-content) [sms river .com](/) [Public Inboxes](/#numbers-section) [Country Codes](/country-codes/) [Workbench](/workbench/) [Tools](/tools/) [Developer API](/developer/) [Pricing](/pricing/) [Log In](/accounts/login/) [Log In](/accounts/login/) [Get API Key](/pricing/) [Home](/)

- [Articles](/articles/)

- Character Encoding & Economics

Character Encoding & Economics

Published 2026-08-13

•

8 min read

# The Complete GSM 03.38 Character Set: Standard Chars, Extension Table, and Traps

Complete guide to GSM 03.38 7-bit default alphabet. Learn standard character codes, extension table escape sequences, and characters that cause split segments.

Key Takeaway & Executive Summary

GSM-7 packs 160 characters per segment. Understand basic vs extension table characters (like the € symbol) to prevent accidental billable segment doubling.

The GSM 03.38 standard defines the 7-bit character encoding used by mobile networks to transmit SMS. Because GSM-7 uses 7 bits per character rather than 8-bit ASCII or 16-bit Unicode, a single 140-byte telecom payload fits exactly 160 characters (140 * 8 / 7 = 160). Knowing which characters fit into GSM-7 is the foundation of SMS engineering.

## Table of Contents

- [Standard GSM-7 Basic Character Set](#section-1)

- [The GSM-7 Extension Table (2-Septet Characters)](#section-2)

- [Frequently Asked Questions](#frequently-asked-questions)

## 1 Standard GSM-7 Basic Character Set

The basic 7-bit alphabet includes Latin uppercase (A-Z), lowercase (a-z), digits (0-9), standard punctuation, and Greek capital letters (e.g. Δ, Φ, Γ, Ω). Every character in this set consumes exactly 7 bits.

## 2 The GSM-7 Extension Table (2-Septet Characters)

Certain characters require an escape septet (0x1B) followed by a secondary byte, consuming 2 septets (14 bits):

- Euro Symbol: €
- Curly Brackets: { and }
- Square Brackets: [ and ]
- Pipe Character: |
- Backslash: \
- Caret: ^
- Tilde: ~

Including a single € symbol counts as 2 characters against your 160-character segment limit.

## Frequently Asked Questions • Character Encoding & Economics

Can I test if my SMS copy uses GSM-7 online?

Yes. SMSRiver provides a free, instant SMS Segment Calculator (/tools/sms-segment-calculator/) that detects encoding, character counts, and billable segments in real-time.

## Related Technical Articles & Deep Dives

[Character Encoding & Economics
7 min read

UCS-2 vs UTF-8 in SMS: Why Emojis and Special Characters Cut Max Length to 70 Chars](/articles/ucs-2-vs-utf-8-in-sms-messaging/)

[Character Encoding & Economics
8 min read

User Data Headers (UDH) Deep Dive: How Carriers Reassemble Multi-Part SMS](/articles/udh-user-data-headers-and-multi-segment-sms/)

[Character Encoding & Economics
8 min read

Calculating Billable SMS Segments: Financial Analysis of Hidden Telco Costs](/articles/calculating-sms-segment-costs-at-scale/)

Developer Sandbox

### Automate Inbound SMS & OTP Testing

Eliminate flaky 2FA in CI/CD. Access dedicated virtual lines, programmable synthetic SMS webhooks, and Model Context Protocol (MCP) integrations.

[Explore Developer Tiers →](/pricing/)
[View MCP Setup Guide](/developer/mcp-setup/)

### Developer Utilities

- [SMS Segment Calculator Calculate segment counts and carrier costs in real time.](/tools/sms-segment-calculator/)

- [Webhook Payload Validator Verify JSON webhook payloads against provider schemas.](/tools/webhook-payload-validator/)

- [SMS Delivery Troubleshooter Diagnose carrier filtering and OTP delivery failure.](/tools/sms-delivery-troubleshooter/)

- [E.164 Phone Number Formatter Format phone numbers into international E.164 standard.](/tools/phone-number-formatter/)

### Public Verification Numbers

- [United States (+1) View Line →](/receive-sms/us/)

- [United Kingdom (+44) View Line →](/receive-sms/gb/)

- [Canada (+1) View Line →](/receive-sms/ca/)

- [Germany (+49) View Line →](/receive-sms/de/)

Copied to clipboard

FULL PACKET INSPECTION
SMS

### Line: DE +49 ...

Timestamp: Just now

Extracted code

Copy Code

Message Body:

Copy Full Message

[Open Live Inbox](#)

smsriver.com

Central Office carrier inventory platform & developer SMS verification sandbox. Receive OTP codes instantly with zero SIM card requirement.

Public numbers·Live inboxes·Developer tools

Public Inboxes

- [United States (+1)](/receive-sms/us/)

- [United Kingdom (+44)](/receive-sms/gb/)

- [Canada (+1)](/receive-sms/ca/)

- [Philippines (+63)](/receive-sms/ph/)

- [Germany (+49)](/receive-sms/de/)

Developer & Tools

- [SMS Debugging Workbench](/workbench/)

- [Phone Number Inspector](/tools/phone-number-inspector/)

- [Bulk Phone Validator](/tools/bulk-phone-validator/)

- [Phone Lookup API](/developer/phone-lookup-api/)

- [E.164 Phone Formatter](/tools/phone-number-formatter/)

- [SMS Segment Calculator](/tools/sms-segment-calculator/)

- [Webhook Validator](/tools/webhook-payload-validator/)

Guides & Trust

- [Country Calling Codes](/country-codes/)

- [Troubleshooting Hub](/troubleshooting/)

- [Carrier Comparisons](/compare/)

- [Developer Reference](/developer/)

- [OpenAPI Specification](/openapi.json)

- [MCP Tools Manifest](/.well-known/mcp.json)

- [Privacy & Security Guides](/guides/)

- [Engineering Articles](/articles/)

© 2026 SMSRiver. Operating on Cloudflare Workers & D1. Adheres to CTIA Messaging Principles and 10DLC compliance standards.

[About](/about/)
[Contact](/contact/)
[Privacy Policy](/privacy/)
[Terms of Service](/guides/terms-of-service/)
Cookie Preferences