"&#"开头转中文

        最近在写爬虫时遇到"&#"或者 "&#x"开头的 编码,在浏览器是可以正常打开的,但是爬取下来时却,显示  中国农业银行 在尝试了  utf-8 或者GBK,GB2312等等的编码都行不通的情况下, 在网上也找不到太多的资料,这让我很苦恼,而且百度搜索居然没法直接搜索符号,还是大谷歌好用,  通过http://tool.chinaz.com/tools/unicode.aspx  发现其实这个只是普通的unicode编码.但是却有不同的格式 比如\u开头的,"&#"或者"&#x"开头.   我们在 https://www.zhihu.com/question/21390312   找到了 问题的答案. 

         其实  \u 开头和  &#x 开头是一样的  都是16进制 unicode字符的不同写法,&# 则是 unicode字符的10进制的写法.知道这个之后我们写代码就容易多了.

public static String unicode2String(String unicode) {  
	   
	    StringBuffer string = new StringBuffer();  
	   	    
	    if (unicode.startsWith("&#x")) {
		 String[] hex = unicode.replace("&#x", "").split(";");  		   
		    for (int i = 0; i < hex.length; i++) {  	   
		        int data = Integer.parseInt(hex[i], 16);  	   
		        string.append((char) data);  
		    }
	    }else if(unicode.startsWith("&#")){
		String[] hex = unicode.replace("&#", "").split(";");  		   
		    for (int i = 0; i < hex.length; i++) {  	   
		        int data = Integer.parseInt(hex[i], 10);  	   
		        string.append((char) data);  
		    }
	    }	   	   
	    return string.toString();  
	} 


### 回答1: 可以使用Python编程语言来实现这个任务。具体步骤如下: 1. 打开原始文件code.txt和新文件new.txt。 2. 逐行读取原始文件的内容。 3. 判断每行是否以#开头,如果是,则跳过该行;否则,将该行写入新文件。 4. 关闭两个文件。 下面是Python代码实现: ```python with open(&#39;code.txt&#39;, &#39;r&#39;) as f1, open(&#39;new.txt&#39;, &#39;w&#39;) as f2: for line in f1: if not line.startswith(&#39;#&#39;): f2.write(line) ``` 这段代码使用了Python的with语句来自动管理文件的打开和关闭,避免了手动调用close()方法的麻烦。其中,&#39;code.txt&#39;和&#39;new.txt&#39;分别是原始文件和新文件的文件名。在with语句块中,f1和f2分别代表原始文件和新文件的文件对象。for循环逐行读取原始文件的内容,判断每行是否以#开头,如果不是,则将该行写入新文件。最后,with语句块结束时,两个文件会自动关闭。 ### 回答2: 以下是用300字中文回答的内容: 将文本文件code.txt中以UTF-8编码保存的代码转换为GB2312编码可以通过以下方法进行。首先,我们需要了解两种编码的不同之处。 UTF-8是一种可变长度的编码方式,它能够表示Unicode字符集中的任何字符。相比之下,GB2312只能表示汉字和一些常用的符号,它是一种双字节编码。 为了将UTF-8编码转换为GB2312编码,我们可以借助一些工具或编程语言的库来实现。其中一个常用的工具是iconv。我们可以使用以下命令将code.txt文件中的代码转换为GB2312编码: iconv -f UTF-8 -t GB2312 code.txt > code_gb2312.txt 这条命令将会读取code.txt文件中的文本,并将其转换为GB2312编码后保存到code_gb2312.txt文件中。 另外,如果你使用的是Python语言,你也可以使用codecs库中的函数来实现编码转换。以下是一个简单的示例代码: import codecs with codecs.open(&#39;code.txt&#39;, &#39;r&#39;, &#39;utf-8&#39;) as f: content = f.read() with codecs.open(&#39;code_gb2312.txt&#39;, &#39;w&#39;, &#39;gb2312&#39;) as f: f.write(content) 这段代码将会打开code.txt文件,并按照UTF-8编码读取其中的内容。然后,它将使用GB2312编码将内容写入到code_gb2312.txt文件中。 无论你选择使用哪种方法,最后你都能得到一个以GB2312编码保存的文件,其中包含了原始代码的内容。 ### 回答3: "Hello"开头的所有行保存到新的文件hello.txt中。 首先,我们需要读取code.txt文件中的内容。接下来,我们将逐行检查是否以"Hello"开头,并将以该开头的行保存到一个字符串列表中。 最后,我们将该字符串列表写入新的文件hello.txt中。 以下是实现该过程的Python代码: ```python # 打开code.txt文件以读取内容 with open("code.txt", "r") as file: # 逐行读取文件内容,并保存以"Hello"开头的行 hello_lines = [line for line in file if line.startswith("Hello")] # 创建并打开hello.txt文件以写入内容 with open("hello.txt", "w") as file: # 将以"Hello"开头的行写入hello.txt文件 file.writelines(hello_lines) ``` 执行该代码后,将在同一目录下生成一个新的文件hello.txt,其中包含以"Hello"开头的所有行。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值