AS URL字符编码

思路:

 

UTF8      : 一个汉字三个字节

GB2312  : 一个汉字两个字节

 

 

定义一个字符串, 将字符串以GB2312字符集写入字节数组,    然后根据URL编码规则进行转换

 

CODE:

 

 

public static function encode(data:String):String
        {
            var byteArray:ByteArray = new ByteArray();    //  ByteArray
            byteArray.writeMultiByte(data, 'GB2312');    
           
            var result:String = '';
            var l:int = byteArray.length;
            for(var i:int = 0; i < l;  i++)
            {
                var ascii:Number = byteArray[i];                       // ASCII
                var char:String = '%' + ascii.toString(16).toUpperCase();
                result += char;
            }
           
            return result;
        }

 

 

 

TEST :

 

 

trace(URLEncoder.encode('你好编码测试'));

 

R        :   %C4%E3%BA%C3%B1%E0%C2%EB%B2%E2%CA%D4

baidu :   %C4%E3%BA%C3%B1%E0%C2%EB%B2%E2%CA%D4

在Python中指定字符编码主要涉及两个方面:文件读写时的编码设置和字符串处理时的编码声明。 ### 文件读写时指定编码 在读取或写入文本文件时,可以通过 `open()` 函数的 `encoding` 参数明确指定文件的字符编码。常见的编码格式包括 `"utf-8"`、`"latin-1"` 和 `"cp1252"` 等[^1]。例如: ```python # 读取文件时指定编码为 utf-8 with open('example.txt', 'r', encoding='utf-8') as file: content = file.read() # 写入文件时指定编码为 latin-1 with open('output.txt', 'w', encoding='latin-1') as file: file.write("Some text with special characters: é, ñ, ç") ``` 上述方法确保了在操作文件时能够正确地解码或编码内容,避免出现乱码问题。 ### 字符串编码声明 对于 Python 源代码文件本身,如果包含非 ASCII 字符(如中文、特殊符号等),需要在文件顶部声明编码格式。此声明通常使用以下语法: ```python # -*- coding: utf-8 -*- ``` 或者更简洁的方式(适用于支持 UTF-8 的环境): ```python # coding=utf-8 ``` 这种声明方式告诉 Python 解释器如何解析源代码中的字符,从而正确识别非 ASCII 字符。 ### 示例:下载并保存带有特定编码的文件 当从网络上下载数据时,同样可以指定编码格式以确保正确解析内容: ```python import urllib.request url = "https://example.com/data.txt" response = urllib.request.urlopen(url) content = response.read().decode('utf-8') # 使用 utf-8 解码响应内容 with open('downloaded_data.txt', 'w', encoding='utf-8') as file: file.write(content) ``` 通过这些方法,可以在不同的场景下有效地控制和指定字符编码,保证程序处理文本数据时的准确性与一致性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值