Index: sms_clickatell.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/smsframework/modules/sms_clickatell/sms_clickatell.module,v
retrieving revision 1.2
diff -u -u -p -r1.2 sms_clickatell.module
--- sms_clickatell.module	30 Jul 2008 19:42:56 -0000	1.2
+++ sms_clickatell.module	11 Aug 2008 04:47:35 -0000
@@ -108,7 +108,16 @@ function sms_clickatell_command($command
       $query = 'api_id='. $config['sms_clickatell_api_id'] .'&user='. $config['sms_clickatell_user'] .'&password='. $config['sms_clickatell_password'];
       break;
     case 'sendmsg':
-      $query = 'session_id='. sms_clickatell_get_session_id() .'&to='. $data['number'] .'&text='. drupal_urlencode($data['message']);
+      // check if the message requires unicode handling
+      $latin = iconv('UTF-8', 'ISO-8859-1', $data['message']);
+      if (strcmp($latin, $data['message'])) {
+        $arr = unpack('H*hex', iconv('UTF-8', 'UCS-2BE', $data['message']));
+        $message = strtoupper($arr['hex']) .'&unicode=1';
+      }
+      else {
+        $message = drupal_urlencode($data['message']);
+      }
+      $query = 'session_id='. sms_clickatell_get_session_id() .'&to='. $data['number'] .'&text='. $message;
       break;
     case 'getbalance':
       $query = 'session_id='. sms_clickatell_get_session_id();
@@ -183,4 +192,4 @@ function sms_clickatell_country_codes() 
   return array(
     1 => 'United States',
   );
-}
\ No newline at end of file
+}
