質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

0回答

1208閲覧

YQLで文字化け

kazukazudayon

総合スコア6

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2017/02/22 06:24

YQLで文字化けしています。
SHIFT-JISをどうもlatain-1に判定しているようなので、
queryにcharsetをつけるとresponseがnullで帰ってきます。
xhr.overrideMimeType('text/html;charset=shift_jis');
もつけてもだめです。
RESTにforceCharsetをつけてもだめです。
何か方法はありますか?

RESTの定義は以下のようにしています

<?xml version="1.0" encoding="UTF-8"?> <table xmlns="http://query.yahooapis.com/v1/schema/table.xsd"> <meta> <sampleQuery>SELECT * FROM {table} WHERE url='http://www.google.com' AND parameters='{"headers": [["Referrer", "http://geeklad.com/"]]}';</sampleQuery> </meta> <bindings> <select itemPath="" produces="XML"> <urls> <url></url> </urls> <inputs> <key id='url' type='xs:string' paramType='variable' required="true" /> <key id='parameters' type='xs:string' paramType='variable' /> </inputs> <execute><![CDATA[
var cookie = ""; function getcookie(headers, cookie) { var cookies = headers['set-cookie']; if (cookies instanceof Array) { for (c in cookies) { cookie += cookies[c].split(';')[0] + "; " } } else { if (cookies) { cookie = cookies.split(';')[0] + "; "; } } return cookie; } function handleRedirect(request) { while (request.status == 301 || request.status == 302) { cookie = getcookie(request.headers, cookie); request = y.rest(request.headers.location).accept("text/html"); if (cookie != "") { request = request.header("Cookie", cookie); } request = request.get(); } return request; } var output = {"method" : "GET"}; var key; var inner_key; var remoteRequest = y.rest(url); remoteRequest.followRedirects(false); var original_parameters = parameters; if(parameters) { try { eval("parameters="+parameters); } catch(err){ output.error = "Unable to evaluate parameters. Please ensure that parameters is a properly formed JSON object. Following string was provided: \n\n" + original_parameters; parameters = false; } if(parameters) { for(key in parameters) { switch(key) { case "headers": for(inner_key in parameters.headers) { remoteRequest.header(parameters.headers[inner_key][0], parameters.headers[inner_key][1]); } break; case "method": switch(parameters.method) { case "POST": if(!parameters.postbody) { output.error = "POST method specified without postbody."; } else { output.method = "POST"; } break; default: output.method = "GET"; break; } break; } } } } else { parameters = {"postbody" : false} } if (output.error) { response.object = {"error": output.error}; } else { switch(output.method) { case "POST": output.response = remoteRequest.contentType("application/x-www-form-urlencoded").post(parameters.postbody); break; default: output.response = remoteRequest.get(); break; } response.object = {"method" : output.method, "url": url, "request_headers" : remoteRequest.headers, "post_body" : parameters.postbody, "status" : output.response.status, "response_headers": output.response.headers, "html" : output.response.response}; } ]]></execute> </select> </bindings>
</table>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/03/14 06:44

何をしようとして、(とりあえずこういうふうに組んでみたけど)こんなふうな表示になってうまくいかない、って経緯を添えていただけないでしょうか。回答者はただのデバッガーじゃないので。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問