Sending an SMS with Unicode
The Vonage SMS API supports Unicode characters too, which you will need to use when communicating with customers in Chinese, Japanese and Korean.
To send an SMS that contains Unicode characters, replace the following variables in the example below:
| Key | Description |
|---|---|
VONAGE_API_KEY | Your Vonage API key (see it on your dashboard). |
VONAGE_API_SECRET | Your Vonage API secret (also available on your dashboard). |
VONAGE_BRAND_NAME | The alphanumeric string that represents the name or number of the organization sending the message. |
TO_NUMBER | The phone number you are sending the message to. |
Write the code
Add the following to send-an-sms-with-unicode.sh:
curl -X "POST" "https://rest.nexmo.com/sms/json" \
-d "from=$VONAGE_BRAND_NAME" \
-d "to=$TO_NUMBER" \
-d "text=こんにちは世界" \
-d "type=unicode" \
-d "api_key=$VONAGE_API_KEY" \
-d "api_secret=$VONAGE_API_SECRET"Run your code
Save this file to your machine and run it:
Prerequisites
npm install @vonage/server-sdkCreate a file named send-unicode-sms.js and add the following code:
const { Vonage } = require('@vonage/server-sdk');
const vonage = new Vonage({
apiKey: VONAGE_API_KEY,
apiSecret: VONAGE_API_SECRET,
});Write the code
Add the following to send-unicode-sms.js:
const from = VONAGE_BRAND_NAME;
const to = TO_NUMBER;
const text = 'こんにちは世界';
const type = 'unicode';
vonage.sms.send({ to, from, text, type })
.then((resp) => console.log(resp))
.catch((error) => console.error(error));Run your code
Save this file to your machine and run it:
Prerequisites
Add the following to build.gradle:
implementation 'com.vonage:server-sdk-kotlin:1.1.2'Create a file named SendUnicodeMessage and add the following code to the main method:
val client = Vonage {
apiKey(VONAGE_API_KEY)
apiSecret(VONAGE_API_SECRET)
}Write the code
Add the following to the main method of the SendUnicodeMessage file:
val response = client.sms.sendText(
from = VONAGE_BRAND_NAME,
to = TO_NUMBER,
message = "こんにちは世界",
unicode = true
)
if (response.wasSuccessfullySent()) {
println("Message sent successfully.")
}
else {
println("Message failed with error: ${response[0].errorText}")
}Run your code
We can use the application plugin for Gradle to simplify the running of our application. Update your build.gradle with the following:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''Run the following gradle command to execute your application, replacing com.vonage.quickstart.kt.sms with the package containing SendUnicodeMessage:
Prerequisites
Add the following to build.gradle:
implementation 'com.vonage:server-sdk:8.15.1'Create a file named SendUnicodeMessage and add the following code to the main method:
VonageClient client = VonageClient.builder().apiKey(VONAGE_API_KEY).apiSecret(VONAGE_API_SECRET).build();Write the code
Add the following to the main method of the SendUnicodeMessage file:
TextMessage message = new TextMessage(VONAGE_BRAND_NAME, TO_NUMBER, "Blue Öyster Cult \uD83E\uDD18", true);
SmsSubmissionResponse responses = client.getSmsClient().submitMessage(message);
for (SmsSubmissionResponseMessage responseMessage : responses.getMessages()) {
System.out.println(message);
}Run your code
We can use the application plugin for Gradle to simplify the running of our application. Update your build.gradle with the following:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''Run the following gradle command to execute your application, replacing com.vonage.quickstart.sms with the package containing SendUnicodeMessage:
Prerequisites
Install-Package VonageCreate a file named SendSmsWithUnicode.cs and add the following code:
using Vonage;
using Vonage.Messaging;
using Vonage.Request;Add the following to SendSmsWithUnicode.cs:
var credentials = Credentials.FromApiKeyAndSecret(
vonageApiKey,
vonageApiSecret
);
Write the code
Add the following to SendSmsWithUnicode.cs:
var response = await vonageClient.SmsClient.SendAnSmsAsync(new SendSmsRequest()
{
To = toNumber,
From = vonageBrandName,
Text = "こんにちは世界",
Type = SmsType.UnicodePrerequisites
composer require vonage/clientCreate a file named send-unicode-sms.php and add the following code:
$basic = new \Vonage\Client\Credentials\Basic(VONAGE_API_KEY, VONAGE_API_SECRET);
$client = new \Vonage\Client($basic);Write the code
Add the following to send-unicode-sms.php:
$response = $client->sms()->send(
new \Vonage\SMS\Message\SMS(TO_NUMBER, BRAND_NAME, 'こんにちは世界', 'unicode')
);Run your code
Save this file to your machine and run it:
Prerequisites
pip install vonageWrite the code
Add the following to send-an-sms-with-unicode.py:
from vonage import Auth, Vonage
from vonage_sms import SmsMessage, SmsResponse
client = Vonage(Auth(api_key=VONAGE_API_KEY, api_secret=VONAGE_API_SECRET))
message = SmsMessage(
to=TO_NUMBER,
from_=VONAGE_BRAND_NAME,
text='こんにちは世界',
type='unicode',
)
response: SmsResponse = client.sms.send(message)
print(response)Run your code
Save this file to your machine and run it:
Prerequisites
gem install vonageCreate a file named send-unicode-sms.rb and add the following code:
client = Vonage::Client.new(
api_key: VONAGE_API_KEY,
api_secret: VONAGE_API_SECRET
)Write the code
Add the following to send-unicode-sms.rb:
client.sms.send(
from: VONAGE_BRAND_NAME,
to: TO_NUMBER,
text: 'こんにちは世界',
type: "unicode"
)Run your code
Save this file to your machine and run it:
Try it out
When you run the example above, the text message will be sent to the mobile number specified with the Unicode characters intact.
Note that Unicode messages can only contain 70 characters, rather than the usual 160. There's more information about this on the help page