none
請問要如何利用VB.NET傳送中文訊息??? RRS feed

  • 問題

  • 以下是小弟的程式...目前能接收以及傳送訊息..可以傳ㄧ些數字或英文,但卻沒辦法傳中文耶...傳中文過去會呈現??..是不是要把ASCII改掉..那要換成什麼呢?請各位大大幫我改這幾行程式吧!!還有一個問題...要如何取得本機的IP呀?麻煩各位前輩了....謝謝!!
    Dim bytes(1024) As [Byte]
    Dim msg As [Byte]() = System.Text.Encoding.ASCII.GetBytes(message)
    i = stream.Read(bytes, 0, bytes.Length)
    data = System.Text.Encoding.ASCII.GetString(bytes, 0, i)
    2006年3月25日 下午 05:00

解答

  • 因為你用 ASCII 去編解碼,所以中文就消失了。

    你可以直接用 Unicode 或是用utf8 去編解碼。

    2006年3月26日 上午 12:32
    版主
  • 1. 你可以改用System.Text.Encoding.UTF8或System.Text.Encoding.Unicode
    2. 你可以用System.Net.Dns.GetHostAddresses取得本機IP, 你可以參考下面的範例

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Net;

    namespace ConsoleApplication1
    {
        class Program
        {
            public static void DoGetHostAddresses(string hostname)
            {
                IPAddress[] ips;

                ips = Dns.GetHostAddresses(hostname);

                Console.WriteLine("GetHostAddresses({0}) returns:", hostname);

                foreach (IPAddress ip in ips)
                {
                    Console.WriteLine("    {0}", ip);
                }
            }

            static void Main(string[] args)
            {
                Program.DoGetHostAddresses(Dns.GetHostName());
            }
        }
    }

    2006年3月26日 上午 12:36

所有回覆

  • 因為你用 ASCII 去編解碼,所以中文就消失了。

    你可以直接用 Unicode 或是用utf8 去編解碼。

    2006年3月26日 上午 12:32
    版主
  • 1. 你可以改用System.Text.Encoding.UTF8或System.Text.Encoding.Unicode
    2. 你可以用System.Net.Dns.GetHostAddresses取得本機IP, 你可以參考下面的範例

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Net;

    namespace ConsoleApplication1
    {
        class Program
        {
            public static void DoGetHostAddresses(string hostname)
            {
                IPAddress[] ips;

                ips = Dns.GetHostAddresses(hostname);

                Console.WriteLine("GetHostAddresses({0}) returns:", hostname);

                foreach (IPAddress ip in ips)
                {
                    Console.WriteLine("    {0}", ip);
                }
            }

            static void Main(string[] args)
            {
                Program.DoGetHostAddresses(Dns.GetHostName());
            }
        }
    }

    2006年3月26日 上午 12:36
  • 感謝大大的回覆阿...不過我把程式貼到VB.NET上..卻出現很多錯誤耶..可以請大大幫我看看程式是不是哪裡有錯..還是小弟用錯方法了...小弟是放在BUTTON裡面...這樣對嗎?
    2006年3月28日 下午 05:56
  • 你是說上面的參考程式嗎?如果是的話, 那可能你要改寫成vb.net的語法, 因為那是用c#寫的
    2006年3月28日 下午 06:03
  • 不好意思...想請問一下要如何轉成VB.NET的語法呢?或者是哪裡有參考資料可供參考呢...
    2006年3月29日 下午 01:23
  •  我是小明 寫信:
    不好意思...想請問一下要如何轉成VB.NET的語法呢?或者是哪裡有參考資料可供參考呢...

     

    http://www.developerfusion.co.uk/utilities/convertcsharptovb.aspx

    2006年4月3日 上午 09:29