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

VB.NET-将一个TB中的Unicode转换为另一TB中的Shift JIS,vb.net,unicode,text,encoding,Vb.net,Unicode,Text,Encoding,为了开发一个文本编辑器,我有两个文本框,每个文本框下面都有一个按钮 当按下textbox1下面的按钮时,应该将Unicode文本(预期为日语)转换为Shift-JIS 我这样做的原因是因为软件VOCALOID2只允许ANSI和Shift JIS编码文本粘贴到歌词系统中。该应用程序的用户通常已经将键盘设置为日语,但它使用Unicode输入 当System.text.Encoding类型中没有SJIS时,如何将Unicode文本转换为Shift JIS?谢天谢地,这不是它的工作方式。只要您在.NET

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

当按下textbox1下面的按钮时,应该将Unicode文本(预期为日语)转换为Shift-JIS

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

当System.text.Encoding类型中没有SJIS时,如何将Unicode文本转换为Shift JIS?

谢天谢地,这不是它的工作方式。只要您在.NET程序中操作文本,包括TextBox.text属性,就只有一种编码,即UTF-16。当您需要处理外部世界时,无论是文件还是P/调用函数,都需要在Shift Jis和UTF-16之间进行转换。这很直截了当:

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

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

Oops,使用Dim而不是var。RichTextBox就足够了吗?我已经实现了,但是是的,作为文本框,它不会工作。谢谢你的第一次回复!我试着使用RichTextBox,效果很好!非常感谢你!好吧,我修改了一些代码。我无法获得值(我更改了变量名,但仍然有效),所以我这样做了:Dim enc As System.Text.Encoding=System.Text.Encoding.GetEncoding(“shift jis”)My.Computer.FileSystem.writealText(“C:\q.w”,TextBox1.Text,False,System.Text.Encoding.UTF8)TextBox2.Text=My.Computer.FileSystem.ReadAllText(“C:\q.w”,enc)My.Computer.FileSystem.DeleteFile(“C:\q.w”)