gpt4 book ai didi

java - "En dash"在 http 响应处理或文本操作期间出现乱码

转载 作者:行者123 更新时间:2023-11-30 11:53:02 31 4
gpt4 key购买 nike

我正在编写代码来处理来自维基百科的文本,但我遇到了破折号乱码的问题。我之前没有使用过破折号或其他非标准字符(对我来说非标准字符是键盘上没有出现的字符;),所以我不确定该将手指指向哪里做错了。这是正在发生的事情,以及代码片段......

我向维基百科发送请求(我正在使用 Apache HttpComponents 客户端 API 与维基百科通信)以获取文章的内容并将其保存在字符串中:

DefaultHttpClient client = new DefaultHttpClient();
HttpGet queryRequest = new HttpGet(query); // query is the URL for retrieving the article contents.
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String responseBody = client.execute(queryRequest, responseHandler);

此时,如果我要将“responseBody”发送到 System.out,短划线在我的 Eclipse 控制台中显示为“?”。这可能只是 Eclipse 控制台显示问题,所以我会继续。

我操纵文本,忽略破折号,然后将文本发送回维基百科。

List<NameValuePair> postParams = new ArrayList<NameValuePair>();
postParams.add(new BasicNameValuePair("text", content); // content is a String with the article text
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(postParams, "UTF-8");
HttpPost queryRequest = new HttpPost(url); // url is the basic URL for the Wikipedia api
queryRequest.setEntity(entity);
queryRequest.addHeader("Content-Type", "application/x-www-form-urlencoded");
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String responseBody = client.execute(queryRequest, responseHandler);

当现在上传到维基百科的文本在网络浏览器中显示时,之前的破折号现在显示为“?”在一个盒子里(未知字符?)。因此,在某处我无意中更改或错误编码了破折号,但我不确定确切位置。

有人能指出我正确的方向吗?

最佳答案

现在是真正的答案。非英语字符被破坏的问题与 Apache HTTPComponents 或 Java 字符串处理/操作无关。问题出在 Windows 上运行的 Eclipse IDE。

Eclipse在运行配置中默认使用系统默认的编码方式,Cp1252 for Windows。由于 Cp1252 不支持所有的 UTF-8 字符,因此会出现问题。我找到了 solution here .在 Eclipse 中,您进入运行配置。对于您尝试运行的项目,转到“通用”选项卡。有一个编码部分。将其从“默认”更改为“其他”并将编码设置为 UTF-8。

现在一切都很好。

关于java - "En dash"在 http 响应处理或文本操作期间出现乱码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6531272/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com