如何将单字节转换成双字节?(在线等!)

snakers 2005-09-07 02:49:46
“永嘉路15*4*2楼”转换成“永嘉路15*4*2楼”即半角转全角
...全文
611 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
snakers 2005-10-18
  • 打赏
  • 举报
回复
多谢“rexsp(真水无香) (PPTech.Net)”的清晰解说!!!!
snakers 2005-10-18
  • 打赏
  • 举报
回复
多谢“rexsp(真水无香) (PPTech.Net)”的清晰解说!!!!
snakers 2005-10-18
  • 打赏
  • 举报
回复
多谢“rexsp(真水无香) (PPTech.Net)”的清晰解说!!!!
aspcn 2005-10-16
  • 打赏
  • 举报
回复
把计算机组成原理前两章看完,心里就有底了。
liminlovemama 2005-10-13
  • 打赏
  • 举报
回复
listening...
liuke209 2005-10-09
  • 打赏
  • 举报
回复
学习当中.....
kekehenu 2005-10-09
  • 打赏
  • 举报
回复
xue xi zhong zhang jian shi
YAOHE 2005-10-09
  • 打赏
  • 举报
回复
我来晚了,按 pupo(泡泡) ( )地方法做就可以了
rexsp 2005-10-08
  • 打赏
  • 举报
回复
数字与英文的全角字符Unicode编码为U+FFXX,数字与英文的半角字符Unicode编码为U+00XX,它们后两位相差0x20,十进制为32,故加32转为半角数字或英文。只能转换英文或数字,其他下面方法不能实现。半角数字与英文转到全角数字或英文则相反。

//// <summary>
/// 将所输入字符进行半角到全角转换
/// </summary>
/// <param name="strInput">半角字符串</param>
/// <returns>全角字符串</returns>
public string banjiaoTOquanjiao(string strInput)
{
string strNewInput = "";
//将要转换的字符串取到字符数组中
char[] charOldInput = strInput.ToCharArray();
for(int i = 0; i < charOldInput.Length; i++)
{
//每次取出一位字符
byte[] byteOldInput = System.Text.Encoding.Unicode.GetBytes(charOldInput, i, 1);
if(byteOldInput.Length == 2)
{
//改变字符编码,将前两位置为0xFF,后两位减32,转为半角Unicode编码
if(byteOldInput[1] == 0)
{
byteOldInput[0] = (byte)(byteOldInput[0] - 32);
byteOldInput[1] = 255;
charOldInput[i] = System.Text.Encoding.Unicode.GetChars(byteOldInput)[0];
}
}
}
//组成新的字符串
strNewInput = new string(charOldInput);
return strNewInput;
}
navy_koo 2005-10-08
  • 打赏
  • 举报
回复
帮你顶一下,等待更完美的解决方案。。。
netzww 2005-09-22
  • 打赏
  • 举报
回复
public class Win32API
{
[DllImport("kernel32.dll", SetLastError=true)]
public static extern int LCMapString(int Locale, int dwMapFlags,
string lpSrcStr, int cchSrc, StringBuilder lpDestStr, int cchDest);
}

public static string ToWide( string source )
{
StringBuilder sbDestination = new StringBuilder( GetStringLength(source) * 2 );
Win32API.LCMapString( Win32API.GetSystemDefaultLCID(), Win32API.LCMAP_FULLWIDTH, source, -1, sbDestination, sbDestination.MaxCapacity );
return sbDestination.ToString().Replace("\0","");
}
feiboynet 2005-09-21
  • 打赏
  • 举报
回复
本来就是这样的,半角和全角没有明确的对应关系的,虽然我一眼就分出来,但是,用程序就是比较麻烦呀。用REPLACE吧,或自己写函数来替换吧
pupo 2005-09-21
  • 打赏
  • 举报
回复
VB的StrConv函数,在C#中使用的话添加对Microsoft Visaul Basic.net Runtime的引用就可以用了
Dim a As String = "永嘉路15*4*2楼"
MsgBox(StrConv(a, VbStrConv.Wide))
碼上道 2005-09-12
  • 打赏
  • 举报
回复
STUDY!
navy_koo 2005-09-12
  • 打赏
  • 举报
回复
学习!!!

不过楼上的方法是治标不治本的。。。
TechEye 2005-09-12
  • 打赏
  • 举报
回复
string str = "永嘉路15*4*2楼";

str = str.Replace("1", "1").Replace("2","2").Replace(...);

:)

13,190

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 分析与设计
社区管理员
  • 分析与设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧