VB.NET - 将一个TB中的Unicode转换为另一个TB中的Shift-JIS

时间:2010-06-10 21:09:37

标签: vb.net unicode text encoding

尝试开发文本编辑器,我有两个文本框,每个文本框下面都有一个按钮。

当按下textbox1下面的按钮时,它应该将Unicode文本(意图是日文)转换为Shift-JIS。

我之所以这样做是因为软件VOCALOID2只允许将ANSI和Shift-JIS编码文本粘贴到歌词系统中。该应用程序的用户通常已将其键盘设置为已更改为日语,但它以Unicode格式输入。

当SJIS在System.Text.Encoding类型中不可用时,如何将Unicode文本转换为Shift-JIS?

1 个答案:

答案 0 :(得分:0)

值得庆幸的是,不是的工作方式。只要您在.NET程序中操作文本(包括TextBox.Text属性),就只有一个编码,UTF-16。当您需要与外界合作时,无论是文件还是P / Invoked函数,然后您需要在Shift-Jis和UTF-16之间进行转换。这很简单:

        var enc = Encoding.GetEncoding("shift-jis");
        var value = enc.GetBytes("hello world");

将“value”的值传递给任何需要Shift-JIS编码值的代码。确保它不是TextBox,它不知道如何显示字节,它只知道UTF-16。