pc에서 스마트폰으로 at 명령어를 이용해 문자를 보낼 때 인코딩 문제

bhb0047의 이미지

포트 설정하는 부분에서

sp.Encoding = Encoding.UTF8;

를 하고

sp.WriteLine("AT+CMGF=1" + Environment.NewLine);
sp.WriteLine("AT+CMGW=*휴대폰번호*" + Environment.NewLine);
sp.WriteLine("Hellowwwww안녕하세요" + Environment.NewLine);
SendKeys.Send("^(z)" );

이렇게 써서 스마트폰 스토리지에 저장했어요
근데 임시 저장된 메시지에는 한글이 나오지 않더군요
utf7, utf32, unicode로 인코딩해서 출력하면
HellowwwwHUX8이라고 문자가 저장이 됩니다
제대로 한글로 출력하고 싶은데 어떻게 해야할지 모르겠습니다
익명 사용자의 이미지

어떤 언어로 프로그래밍하신 건가요?

그리고 저 방식으로 한글을 보내려면 UCS-2로 인코딩된 값을 전달해야 합니다.
https://alt.cellular.gsm.narkive.com/BxjyGXT7/send-sms-in-arabic-using-gsm-modem

bhb0047의 이미지

C#.NET에서 지원하지 않는 방식이라

https://stackoverflow.com/questions/3438340/convert-to-ucs2 해당 링크의 코드를 사용해 인코딩해서 보내봤습니다.

sp.WriteLine("AT+CMGF=1" + Environment.NewLine);
sp.WriteLine("AT+CSMP=17,167,0,8" + Environment.NewLine);
sp.WriteLine("AT+CSCS=\"UCS2\"" + Environment.NewLine);
sp.WriteLine("AT+CMGW=휴대폰번호" + Environment.NewLine);
sp.WriteLine(SmsEngine.UnicodeStr2HexStr("Hellowwwww안녕하세요") + Environment.NewLine);
SendKeys.Send("^(z)" );

하지만 정작 보내지는 문자는 알수없는 문자열이네요..ㅠㅠ
헥사코드가 디코딩되지않고 그대로 나온 느낌입니다

별의별생각의 이미지

해결하셨는지는 모르겠습니다만,
필요한 누군가를 위해 기록을 남겨둡니다.

작성하신 코드에는 아래 4가지 정도 문제가 있어보입니다.
첫번째, WriteLine 함수는 엔터를 자동으로 포함하므로 Write으로 대체
두번째, 중간중간 Thread.Sleep 함수 사용으로 응답 시간 삽입
세번째, 전화번호를 Hexa String으로 변환하여 입력
네번째, SendKeys.Send는 로컬용으로 송출되지 않습니다. \x1A로 대체
기타..기종마다 다를 수 있는데 AT+CMGW => AT+CMGS 로 바꾸어 해보세요.

string telnum = UnicodeStr2HexStr("010xxxxxxx");
string message = UnicodeStr2HexStr("안녕");


sp.Write("AT+CMGF=1" + Environment.NewLine);
Thread.Sleep(100);
sp.Write("AT+CSCS=\"UCS2\"" + Environment.NewLine);
Thread.Sleep(100);
sp.Write("AT+CSMP=17,167,0,8" + Environment.NewLine);
Thread.Sleep(100);
sp.Write("AT+CMGS=\"" + telnum + "\"" + Environment.NewLine);
Thread.Sleep(100);
sp.Write(message);
sp.Write("\x1A"); //16진수 1A

별의별 생각의 이미지

Linux 환경에서는 Environment.NewLine 대신 \r\n 을 사용해야합니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.