gpt4 book ai didi

java - 使用谷歌脚本服务翻译文本返回编码文本

转载 作者:行者123 更新时间:2023-12-01 16:48:04 24 4
gpt4 key购买 nike

我正在尝试实现 this post 中的代码。我成功地对某些语言做到了这一点,但对于希腊语,我得到了一些奇怪的结果,如下所示:ΑÏ?χÎØÏ?Îος

这是我使用的java代码:

public static String translate(String langFrom, String langTo, String text) {

StringBuilder response = null;
System.out.println("Translate: " + text);
try {
String urlStr = Main.GOOGLE_SCRIPTS_URL +
"?q=" + URLEncoder.encode(text, "UTF-8") +
"&target=" + langTo +
"&source=" + langFrom;
//System.out.println(urlStr);
URL url = new URL(urlStr);
response = new StringBuilder();
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestProperty("User-Agent", "Mozilla/5.0");
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
}
catch (IOException e)
{
e.printStackTrace();
}

return response.toString();
}

这是我在 script.google.com 网站中使用的脚本:

var mock = {
parameter:{
q:'hello',
source:'en',
target:'fr'
}
};


function doGet(e) {
e = e || mock;

var sourceText = ''
if (e.parameter.q){
sourceText = e.parameter.q;
}

var sourceLang = '';
if (e.parameter.source){
sourceLang = e.parameter.source;
}

var targetLang = 'en';
if (e.parameter.target){
targetLang = e.parameter.target;
}

var translatedText = LanguageApp.translate(sourceText, sourceLang, targetLang, {contentType: 'html'});

return ContentService.createTextOutput(translatedText).setMimeType(ContentService.MimeType.JSON);
}

有什么想法可以解决这个问题吗?谢谢。

最佳答案

我设法使用以下代码解决了这个问题:

public static String translate(String langFrom, String langTo, String text) 
{
String translatedText=null;
try {
String urlStr = Main.GOOGLE_SCRIPTS_URL +
"?q=" + URLEncoder.encode(text, "UTF-8") +
"&target=" + langTo +
"&source=" + langFrom;
//System.out.println(urlStr);
URL url = new URL(urlStr);
URLConnection conn = url.openConnection();

BufferedReader br = new BufferedReader(
new InputStreamReader(conn.getInputStream(),"UTF-8"));

String inputLine;
while ((inputLine = br.readLine()) != null) {
translatedText=inputLine;
}
br.close();

} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

return translatedText;
}

首先在 Eclipse 控制台上我得到这样的结果“?????????”但后来我转到“运行”->“运行配置”->“通用”,并将编码更改为 UTF-8。现在一切都很好!

关于java - 使用谷歌脚本服务翻译文本返回编码文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61739564/

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