关键词搜索

源码搜索 ×
×

ASP.NET 或C# 中ASCII码含中文字符的编解码处理

发布2018-05-23浏览5429次

详情内容

网上很多在线工具转出来的不能用,如“是是是”转出来的ASCII码是 :"\u662f\u662f\u662f”,如果是HTTP服务这个参数是有问题的因为包含特殊字符“\”。C#或ASP.NET中,如果是有中文字符,那么直接转是不行的,需要先将字符串转成16进制码才能转成想要的ASCII码,拿到的ASCII码字符串也可以进行解码了,不会再有中文乱码问题。

StringUtil工具类

  1. using SQ.Base;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Web;
  7. namespace RTVSApi.Utils
  8. {
  9. /// <summary>
  10. /// 字符串工具类
  11. /// </summary>
  12. public class StringUtil
  13. {
  14. /// <summary>
  15. /// 含中文字符串转ASCII
  16. /// </summary>
  17. /// <param name="str"></param>
  18. /// <returns></returns>
  19. public static string Str2ASCII(String str)
  20. {
  21. try
  22. {
  23. //这里我们将采用2字节一个汉字的方法来取出汉字的16进制码
  24. byte[] textbuf = Encoding.Default.GetBytes(str);
  25. //用来存储转换过后的ASCII码
  26. string textAscii = string.Empty;
  27. for (int i = 0; i < textbuf.Length; i++)
  28. {
  29. textAscii += textbuf[i].ToString("X");
  30. }
  31. return textAscii;
  32. }
  33. catch (Exception ex)
  34. {
  35. Log.WriteLog4("含中文字符串转ASCII异常" + ex.Message);
  36. }
  37. return "";
  38. }
  39. /// <summary>
  40. /// ASCII转含中文字符串
  41. /// </summary>
  42. /// <param name="textAscii">ASCII字符串</param>
  43. /// <returns></returns>
  44. public static string ASCII2Str(string textAscii)
  45. {
  46. try
  47. {
  48. int k = 0;//字节移动偏移量
  49. byte[] buffer = new byte[textAscii.Length / 2];//存储变量的字节
  50. for (int i = 0; i < textAscii.Length / 2; i++)
  51. {
  52. //每两位合并成为一个字节
  53. buffer[i] = byte.Parse(textAscii.Substring(k, 2), System.Globalization.NumberStyles.HexNumber);
  54. k = k + 2;
  55. }
  56. //将字节转化成汉字
  57. return Encoding.Default.GetString(buffer);
  58. }
  59. catch (Exception ex)
  60. {
  61. Log.WriteLog4("ASCII转含中文字符串异常" + ex.Message);
  62. }
  63. return "";
  64. }
  65. }
  66. }


获取到的ASCII字符串是:

"BBA65151373738312E312E312E312E37623531623234393738306434386363393433613130653339623062313361323534643833396366323264353434383739653838373064633538386339356462"。

测试完美进行了转换。


相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载