{"__v":1,"_id":"57f35d1649298517009bcbcc","category":{"__v":65,"_id":"551546edbc466623002afe72","pages":["551549c0bc466623002afe76","55154afbc859ac2f0001b486","55154daec859ac2f0001b48b","55154f36bc466623002afe7c","551550c5e68daa2f00cff84c","551551d4f854a31900368737","551552e7c859ac2f0001b494","551be4e3a0ee622b0087f69e","5527acc447b71d0d0044e6cd","552f84ad633a5b0d00e99daf","5537533df162750d00bbf7d0","554b3ffd6b448d0d00646d79","55506416fa289c0d0075e4f0","5550aaea00420e0d00d13113","55545865b450630d00041d80","55546906f9a7871700ef8e3c","555c4bf87e271d0d00f3c8c4","5564318c1fa8002300ea4bb0","556ffbd5910c090d00c432b6","557019f4cc189a21001ab258","55703aefcc189a21001ab2a3","5575a3c60b81dc230069c910","558ab69575eaf50d004e4cf3","55b0b41fb3171b3700b1539a","55ba2e48d72d1e1900276ac1","55ba45c804775a2f00628101","55c0b789344dc40d00f55933","55c0b8c837298d0d00088d88","55c0c095344dc40d00f55960","55d43e05b49ab11900328e2e","55d72c8c60fc730d00fc2738","55e6c564d678ad17001589ac","55e9b7780c9b420d0042b275","55f7cf2de32e9b0d00a2d4b6","56094efea7b2590d0089eb95","5613cdbeecbebc21003fa179","5613d8de6a092921004c30b8","5613de7c443514170060dbb6","5613e02823ecf6350009eefc","5613e4271db46e2100e142ad","5614d73c8113d20d00082e3e","561e11ae50e0a62100955946","561e2008efcf8217003adf77","5620f184b244890d001868e0","5620feb740e2c30d0002a899","562105ce40e2c30d0002a8a3","56210b3340e2c30d0002a8b3","56210c74b244890d0018690e","56249a0372ac510d00e49149","56249df185a31117001c53de","56249f0c85a31117001c53e1","5624a9e7c4bf501700bc5ec8","5624b29806e8040d005ed6a0","562507435a86b42300946324","563877854bfb360d00a463c1","5639e0f91846790d0089529a","565327d17d29410d004a0835","565457df04feff210074b17d","56545821ec189235002967af","565485099c4c6d0d00aeda02","5666f1f1f672550d000851ad","566abc7b74d574170070b700","566ad3c7c7c3cd1700265d14","566aede7b5ccc20d00817f71","566aef3147ebaf1900fe65d6"],"project":"54eb50e5615ffc1900305a16","version":"54eb63b859b1172100334fae","sync":{"url":"","isSync":false},"reference":true,"createdAt":"2015-03-27T12:02:53.314Z","from_sync":false,"order":9,"slug":"advanced-tutorials","title":"Advanced tutorials"},"parentDoc":null,"project":"54eb50e5615ffc1900305a16","user":"54eb4fdedf7add210007b29b","version":{"__v":20,"_id":"54eb63b859b1172100334fae","forked_from":"54eb63a1867e1917009b711d","project":"54eb50e5615ffc1900305a16","createdAt":"2015-02-23T17:30:32.501Z","releaseDate":"2015-02-23T17:30:32.501Z","categories":["54eb63b959b1172100334faf","54eb63b959b1172100334fb0","54eb63b959b1172100334fb1","54eb63b959b1172100334fb2","54ed8dd4ab373e2300f50eae","54ed99b2ab373e2300f50ede","55153a6de68daa2f00cff838","551546edbc466623002afe72","5515472ac28d6125001b8884","55154749c28d6125001b8885","555d9b4106dfec0d00d38ea7","5613e06e433e5735007c7708","5624bbb785a31117001c5403","56669e857cc81e0d00253f8e","568b8d837a42220d00498311","56a632277ef6620d00e2f18a","56d8147c3eb4dd0b00201aac","57a9ce2fac6db30e000d7efd","57a9cf4e944ea60e00dc3f74","58172386715dce0f00da4aa0","582dc59ee1b8692300c0dd03","589b19b4fec2730f0082e040","58b04a023529383900a759b5"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"1.0.0","version":"1"},"updates":[],"next":{"pages":[],"description":""},"createdAt":"2016-10-04T07:41:10.583Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"settings":"","results":{"codes":[]},"auth":"required","params":[],"url":""},"isReference":true,"order":6,"body":"Sending messages with special characters can be quite expensive in terms of maximum characters per message. This should be taken seriously because if even one illegal character is included, message capacity drops from 160 to only **70 characters**! This can cause a message to split into multiple parts, increasing the price significantly.\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"Character encoding\",\n  \"body\": \"Reasons behind maximum characters decrease from 160 to 70 are described in [SMS language tutorial](/docs/language).\"\n}\n[/block]\nIf you need to handle special characters in your SMS messages, there are two main approaches that can be taken in order to increase character capacity closer to standard SMS size.\n\n**1. National Language Identifier (NLI)** \n**2. Transliteration**\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"National Language Identifier (NLI)\",\n  \"body\": \"NLI is the technique of handling language-specific characters by instructing mobile devices to use proper alphabet in order to display message properly. We covered NLI in details in [this tutorial](/docs/language).\"\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Transliteration\"\n}\n[/block]\nTransliteration is a method of replacing special (unsupported) characters by similar or related characters that are part of the default alphabet. This process ensures that a maximum number of 160 characters per message can still be used in a message, instead of only 70 (because of the different encoding standard). The downside of this approach is that delivered message will look slightly different.\n\nWith this method you can send messages in your preferred alphabet and they will be automatically converted into the appropriately transliterated script. This way you can use the full capacity of the message text without sending any [Unicode characters](doc:unicode-messages).\n\n**Supported alphabets:**\n- `\"TURKISH\"`\n- `\"GREEK\"`\n- `\"CYRILLIC\"`\n- `\"SERBIAN_CYRILLIC\"`\n- `\"CENTRAL_EUROPEAN\"`\n- `\"BALTIC\"`\n- `\"NON_UNICODE\"`\n\nBy specifying desired output alphabet, some unsupported character will be converted differently, depending which character is the most appropriate for selected language.\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"title\": \"Warning\",\n  \"body\": \"Using any of the alphabets available, transliteration will be done on matching characters recognized by selected language, leaving other characters untouched. \\n\\nAny character that is not recognized by the selected language and not part of the default alphabet, will be replaced by  (`.`).\"\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"Note\",\n  \"body\": \"Using `\\\"NON_UNICODE\\\"` transliteration message text will be converted from Unicode to GSM charset using all of the available alphabets conversions, leaving unmatched characters replaced with dots (ie. `\\\"©™ø- ˆ¨л- ˙˚λ- ∆ƒ∂\\\"` will become `\\\"..ø- ..l- ..A- ...\\\"`).\"\n}\n[/block]\nThe example bellow shows how to send a transliterated message. Just put one of the supported alphabets in **`transliteration`** parameter.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"POST /sms/1/text/advanced HTTP/1.1\\nHost: api.infobip.com\\nAuthorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==\\nContent-Type: application/json\\n\\n{\\n    \\\"messages\\\":[\\n        {\\n            \\\"from\\\":\\\"InfoSMS\\\",\\n            \\\"destinations\\\":[\\n                {\\n                    \\\"to\\\":\\\"41793026727\\\"\\n                }\\n            ],\\n            \\\"text\\\":\\\"Ως Μεγαρικό ψήφισμα είναι γνωστή η απόφαση της Εκκλησίας του δήμου των Αθηναίων (πιθανόν γύρω στο 433/2 π.Χ.) να επιβάλει αυστηρό και καθολικό εμπάργκο στα\\\",\\n            \\\"transliteration\\\":\\\"GREEK\\\"\\n        }\\n    ]\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\nText sent:\n```\nΩς Μεγαρικό ψήφισμα είναι γνωστή η απόφαση της Εκκλησίας του δήμου των Αθηναίων (πιθανόν γύρω στο 433/2 π.Χ.) να επιβάλει αυστηρό και καθολικό εμπάργκο στα\n```\nText received by the recipient of the message:\n```\nΩΣ MEΓAPIKO ΨHΦIΣMA EINAI ΓNΩΣTH H AΠOΦAΣH THΣ EKKΛHΣIAΣ TOY ΔHMOY TΩN AΘHNAIΩN (ΠIΘANON ΓYPΩ ΣTO 433/2 Π.X.) NA EΠIBAΛEI AYΣTHPO KAI KAΘOΛIKO EMΠAPΓKO ΣTA\n```\nBy using transliteration, Greek lower case letters which are not supported in default alphabet were converted to upper case letters which are supported, as you can see in the table below.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/2a30a5a-charset1.PNG\",\n        \"charset1.PNG\",\n        710,\n        327,\n        \"#e7e7e5\"\n      ],\n      \"caption\": \"Default alphabet\"\n    }\n  ]\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"Transliteration may cause unexpected output message text. We recommend using [SMS preview](/docs/sms-preview) method to explore all options before sending.\",\n  \"title\": \"Preview messages before sending!\"\n}\n[/block]\n-----------\n#### **Tip:** Cross-language barriers with setting an [SMS language](doc:language).","excerpt":"Send full-size messages in original language alphabet using the transliteration conversion.","slug":"transliteration","type":"basic","title":"SMS transliteration"}

SMS transliteration

Send full-size messages in original language alphabet using the transliteration conversion.

Sending messages with special characters can be quite expensive in terms of maximum characters per message. This should be taken seriously because if even one illegal character is included, message capacity drops from 160 to only **70 characters**! This can cause a message to split into multiple parts, increasing the price significantly. [block:callout] { "type": "info", "title": "Character encoding", "body": "Reasons behind maximum characters decrease from 160 to 70 are described in [SMS language tutorial](/docs/language)." } [/block] If you need to handle special characters in your SMS messages, there are two main approaches that can be taken in order to increase character capacity closer to standard SMS size. **1. National Language Identifier (NLI)** **2. Transliteration** [block:callout] { "type": "info", "title": "National Language Identifier (NLI)", "body": "NLI is the technique of handling language-specific characters by instructing mobile devices to use proper alphabet in order to display message properly. We covered NLI in details in [this tutorial](/docs/language)." } [/block] [block:api-header] { "type": "basic", "title": "Transliteration" } [/block] Transliteration is a method of replacing special (unsupported) characters by similar or related characters that are part of the default alphabet. This process ensures that a maximum number of 160 characters per message can still be used in a message, instead of only 70 (because of the different encoding standard). The downside of this approach is that delivered message will look slightly different. With this method you can send messages in your preferred alphabet and they will be automatically converted into the appropriately transliterated script. This way you can use the full capacity of the message text without sending any [Unicode characters](doc:unicode-messages). **Supported alphabets:** - `"TURKISH"` - `"GREEK"` - `"CYRILLIC"` - `"SERBIAN_CYRILLIC"` - `"CENTRAL_EUROPEAN"` - `"BALTIC"` - `"NON_UNICODE"` By specifying desired output alphabet, some unsupported character will be converted differently, depending which character is the most appropriate for selected language. [block:callout] { "type": "warning", "title": "Warning", "body": "Using any of the alphabets available, transliteration will be done on matching characters recognized by selected language, leaving other characters untouched. \n\nAny character that is not recognized by the selected language and not part of the default alphabet, will be replaced by (`.`)." } [/block] [block:callout] { "type": "info", "title": "Note", "body": "Using `\"NON_UNICODE\"` transliteration message text will be converted from Unicode to GSM charset using all of the available alphabets conversions, leaving unmatched characters replaced with dots (ie. `\"©™ø- ˆ¨л- ˙˚λ- ∆ƒ∂\"` will become `\"..ø- ..l- ..A- ...\"`)." } [/block] The example bellow shows how to send a transliterated message. Just put one of the supported alphabets in **`transliteration`** parameter. [block:code] { "codes": [ { "code": "POST /sms/1/text/advanced HTTP/1.1\nHost: api.infobip.com\nAuthorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==\nContent-Type: application/json\n\n{\n \"messages\":[\n {\n \"from\":\"InfoSMS\",\n \"destinations\":[\n {\n \"to\":\"41793026727\"\n }\n ],\n \"text\":\"Ως Μεγαρικό ψήφισμα είναι γνωστή η απόφαση της Εκκλησίας του δήμου των Αθηναίων (πιθανόν γύρω στο 433/2 π.Χ.) να επιβάλει αυστηρό και καθολικό εμπάργκο στα\",\n \"transliteration\":\"GREEK\"\n }\n ]\n}", "language": "json" } ] } [/block] Text sent: ``` Ως Μεγαρικό ψήφισμα είναι γνωστή η απόφαση της Εκκλησίας του δήμου των Αθηναίων (πιθανόν γύρω στο 433/2 π.Χ.) να επιβάλει αυστηρό και καθολικό εμπάργκο στα ``` Text received by the recipient of the message: ``` ΩΣ MEΓAPIKO ΨHΦIΣMA EINAI ΓNΩΣTH H AΠOΦAΣH THΣ EKKΛHΣIAΣ TOY ΔHMOY TΩN AΘHNAIΩN (ΠIΘANON ΓYPΩ ΣTO 433/2 Π.X.) NA EΠIBAΛEI AYΣTHPO KAI KAΘOΛIKO EMΠAPΓKO ΣTA ``` By using transliteration, Greek lower case letters which are not supported in default alphabet were converted to upper case letters which are supported, as you can see in the table below. [block:image] { "images": [ { "image": [ "https://files.readme.io/2a30a5a-charset1.PNG", "charset1.PNG", 710, 327, "#e7e7e5" ], "caption": "Default alphabet" } ] } [/block] [block:callout] { "type": "info", "body": "Transliteration may cause unexpected output message text. We recommend using [SMS preview](/docs/sms-preview) method to explore all options before sending.", "title": "Preview messages before sending!" } [/block] ----------- #### **Tip:** Cross-language barriers with setting an [SMS language](doc:language).