编码.GetEncode问题 [英] Encoding.GetEncode Problem
问题描述
我有来自剪贴板的Windows Form应用程序收到的数据,并根据一些ruls转换其
编码。这样做:
//从源[source]到多个目标[targ1,targ2]
System.Text.Encoding targ1 = Encoding.GetEncoding(" Target_1_code_name" );;
System.Text.Encoding targ2 = Encoding.GetEncoding(" Target_2_code_name");
System.Text.Encoding source = Encoding.GetEncoding(" Source_code_name" );
byte [] sourceBytes = source.GetBytes(source);
byte [] targ1Bytes = Encoding.Convert(source,targ1,sourceBytes,0,>
sourceBytes.Length);
byte [] targ2Bytes = Encoding.Convert(source,targ2,sourceBytes,0,
sourceBytes.Length);
string targ1String = source.GetString(targ1Bytes,0,targ1Bytes.Length);
string targ2String = source.GetString(targ2Bytes,0,targ2Bytes.Length);
但是没有任何事情发生....(源字符串继续看起来像
是,目标未被取消)。 egtarg1String = targ2String = source;
可能有什么问题
-
Tamir Khason
你想要dot.NET吗?只需询问:
"请, www.dotnet.us
I have Windows Form application recieved data from clipboard and convert its
encoding based on some ruls. So doing following:
//from source[source] to multiple targets[targ1,targ2]
System.Text.Encoding targ1 = Encoding.GetEncoding("Target_1_code_name");
System.Text.Encoding targ2 = Encoding.GetEncoding("Target_2_code_name");
System.Text.Encoding source = Encoding.GetEncoding("Source_code_name");
byte[] sourceBytes = source.GetBytes(source);
byte[] targ1Bytes = Encoding.Convert(source, targ1, sourceBytes, 0,
sourceBytes.Length);
byte[] targ2Bytes = Encoding.Convert(source, targ2, sourceBytes, 0,
sourceBytes.Length);
string targ1String = source.GetString(targ1Bytes,0,targ1Bytes.Length);
string targ2String = source.GetString(targ2Bytes,0,targ2Bytes.Length);
BUT Nothing happens....(the source strings continue to be looking like it
was, target undepended). e.g.targ1String = targ2String =source;
What can be a problem
--
Tamir Khason
You want dot.NET? Just ask:
"Please, www.dotnet.us "
推荐答案
字符串(我的意思是System.String)总是Unicode - 因此targ1String ==
targ2String == source。
但是如果比较sourceBytes,targ1Bytes和targ2Bytes,这些应该是
不同。
-
此致,
Dmitriy Lapshin [C#/ .NET MVP]
带来的力量今天对VS .NET IDE进行单元测试!
http:// www.x-unity.net/teststudio.aspx
Tamir Khason < TA ********** @ tcon-NOSPAM.co.il>在消息中写道
新闻:Ov ************** @ TK2MSFTNGP10.phx.gbl ...
Hi,
Strings (I mean System.String) are always Unicode - hence targ1String ==
targ2String == source.
But if you compare sourceBytes, targ1Bytes and targ2Bytes, these should be
different.
--
Sincerely,
Dmitriy Lapshin [C# / .NET MVP]
Bring the power of unit testing to the VS .NET IDE today!
http://www.x-unity.net/teststudio.aspx
"Tamir Khason" <ta**********@tcon-NOSPAM.co.il> wrote in message
news:Ov**************@TK2MSFTNGP10.phx.gbl...
我有Windows Form应用程序从剪贴板收到的数据并根据一些ruls转换它的编码。这样做:
//从源[source]到多个目标[targ1,targ2]
System.Text.Encoding targ1 = Encoding.GetEncoding(" Target_1_code_name");
系统。 Text.Encoding targ2 = Encoding.GetEncoding(" Target_2_code_name");
System.Text.Encoding source = Encoding.GetEncoding(" Source_code_name");
byte [] sourceBytes = source.GetBytes(source );
byte [] targ1Bytes = Encoding.Convert(source,targ1,sourceBytes,0,
sourceBytes.Length);
byte [] targ2Bytes = Encoding.Convert(source,targ2,sourceBytes) ,0,
sourceBytes.Length);
字符串targ1String = source.GetString(targ1Bytes,0,targ1Bytes.Length);
字符串targ2String = source.GetString(targ2Bytes,0,targ2Bytes.Length );
但没有任何事情发生....(源字符串继续看起来像是
,目标未被取消)。 egtarg1String = targ2String = source;
可能有什么问题
-
Tamir Khason
你想要dot.NET吗?只需询问:
请, www.dotnet.us "
I have Windows Form application recieved data from clipboard and convert
its
encoding based on some ruls. So doing following:
//from source[source] to multiple targets[targ1,targ2]
System.Text.Encoding targ1 = Encoding.GetEncoding("Target_1_code_name");
System.Text.Encoding targ2 = Encoding.GetEncoding("Target_2_code_name");
System.Text.Encoding source = Encoding.GetEncoding("Source_code_name");
byte[] sourceBytes = source.GetBytes(source);
byte[] targ1Bytes = Encoding.Convert(source, targ1, sourceBytes, 0,
sourceBytes.Length);
byte[] targ2Bytes = Encoding.Convert(source, targ2, sourceBytes, 0,
sourceBytes.Length);
string targ1String = source.GetString(targ1Bytes,0,targ1Bytes.Length);
string targ2String = source.GetString(targ2Bytes,0,targ2Bytes.Length);
BUT Nothing happens....(the source strings continue to be looking like it
was, target undepended). e.g.targ1String = targ2String =source;
What can be a problem
--
Tamir Khason
You want dot.NET? Just ask:
"Please, www.dotnet.us "
Tamir Khason< ta ********** @ tcon-NOSPAM.co.il>写道:
Tamir Khason <ta**********@tcon-NOSPAM.co.il> wrote:
我有来自剪贴板的Windows Form应用程序收到的数据,并根据一些ruls转换它的
编码。
I have Windows Form application recieved data from clipboard and convert its
encoding based on some ruls.
如果你我们已经收到了数据字符串,你不需要做任何
编码转换。它已经是Unicode。
-
Jon Skeet - < sk *** @ pobox.com>
http://www.pobox.com/~skeet
如果回复小组,请不要给我发邮件
If you''ve received the data as a string, you don''t need to do any
encoding conversion. It''s already in Unicode.
--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet
If replying to the group, please do not mail me too
那怎么办呢?
-
Tamir Khason
您想要dot.NET吗?只需询问:
"请, www.dotnet.us
Dmitriy Lapshin [C#/ .NET MVP]" < X - **** @ no-spam-please.hotpop.com>在消息新闻中写了
:ey ************** @ TK2MSFTNGP10.phx.gbl ...
So how to do it?
--
Tamir Khason
You want dot.NET? Just ask:
"Please, www.dotnet.us "
"Dmitriy Lapshin [C# / .NET MVP]" <x-****@no-spam-please.hotpop.com> wrote
in message news:ey**************@TK2MSFTNGP10.phx.gbl...
>
字符串(我的意思是System.String)总是Unicode - 因此targ1String ==
targ2String == source。
但是如果比较sourceBytes,targ1Bytes和targ2Bytes,这些应该是
不同。
-
此致,Dmitriy Lapshin [C#/ .NET MVP]
今天将单元测试的强大功能带到VS .NET IDE!
http://www.x-unity.net/teststudio。 aspx
Tamir Khason < TA ********** @ tcon-NOSPAM.co.il>在消息中写道
新闻:Ov ************** @ TK2MSFTNGP10.phx.gbl ...
Hi,
Strings (I mean System.String) are always Unicode - hence targ1String ==
targ2String == source.
But if you compare sourceBytes, targ1Bytes and targ2Bytes, these should be
different.
--
Sincerely,
Dmitriy Lapshin [C# / .NET MVP]
Bring the power of unit testing to the VS .NET IDE today!
http://www.x-unity.net/teststudio.aspx
"Tamir Khason" <ta**********@tcon-NOSPAM.co.il> wrote in message
news:Ov**************@TK2MSFTNGP10.phx.gbl...
我有来自剪贴板的Windows窗体应用程序收到的数据并根据一些ruls转换它的
编码。这样做:
//从源[source]到多个目标[targ1,targ2]
System.Text.Encoding targ1 = Encoding.GetEncoding(" Target_1_code_name");
系统。 Text.Encoding targ2 = Encoding.GetEncoding(" Target_2_code_name");
System.Text.Encoding source = Encoding.GetEncoding(" Source_code_name");
byte [] sourceBytes = source.GetBytes(source );
byte [] targ1Bytes = Encoding.Convert(source,targ1,sourceBytes,0,
sourceBytes.Length);
byte [] targ2Bytes = Encoding.Convert(source,targ2,sourceBytes) ,0,
sourceBytes.Length);
字符串targ1String = source.GetString(targ1Bytes,0,targ1Bytes.Length);
字符串targ2String = source.GetString(targ2Bytes,0,targ2Bytes.Length );
但没有任何事情发生....(源字符串继续看起来像是
,目标未被取消)。 egtarg1String = targ2String = source;
可能有什么问题
-
Tamir Khason
你想要dot.NET吗?只需询问:
请, www.dotnet.us "
I have Windows Form application recieved data from clipboard and convert
its
encoding based on some ruls. So doing following:
//from source[source] to multiple targets[targ1,targ2]
System.Text.Encoding targ1 = Encoding.GetEncoding("Target_1_code_name");
System.Text.Encoding targ2 = Encoding.GetEncoding("Target_2_code_name");
System.Text.Encoding source = Encoding.GetEncoding("Source_code_name");
byte[] sourceBytes = source.GetBytes(source);
byte[] targ1Bytes = Encoding.Convert(source, targ1, sourceBytes, 0,
sourceBytes.Length);
byte[] targ2Bytes = Encoding.Convert(source, targ2, sourceBytes, 0,
sourceBytes.Length);
string targ1String = source.GetString(targ1Bytes,0,targ1Bytes.Length);
string targ2String = source.GetString(targ2Bytes,0,targ2Bytes.Length);
BUT Nothing happens....(the source strings continue to be looking like it
was, target undepended). e.g.targ1String = targ2String =source;
What can be a problem
--
Tamir Khason
You want dot.NET? Just ask:
"Please, www.dotnet.us "
这篇关于编码.GetEncode问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!