スクリプト#3 @避難所 (1000レス)
上下前次1-新
1: 2019/08/17(土)04:06 ID:/RfgUwQc0(1) AAS
スクリプトに関する話題なら何でも
V2C使用法[スクリプト]
http://v2c.s50.xrea.com/manual/script.html
V2Cwikiにもスクリプト関連の情報があります
http://v2c.kaz-ic.net/wiki/?%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88
■前スレ
スクリプト#2 @避難所
したらばスレ:computer_43680
2(1): 2019/08/17(土)05:00 ID:xhyR6eTU0(1) AAS
たておつ
3: 2019/08/22(木)05:53 ID:q.1bqDCk0(1/6) AAS
Instagramのjsonの項目が変わったのかエラーになるな
4: 2019/08/22(木)06:00 ID:q.1bqDCk0(2/6) AAS
Json['entry_data']['ProfilePage'][0]['graphql']['user']['edge_owner_to_timeline_media']['edges'];
[0]がないエラーになるな
5: 2019/08/22(木)10:22 ID:q.1bqDCk0(3/6) AAS
V2Cが取得するHTMLはchromeのHTMLと違うみたいだな
もう少し調べて見るか
6: 2019/08/22(木)10:29 ID:q.1bqDCk0(4/6) AAS
Instagramはログインしないと表示されない仕様に変わったんだ
scriptのログイン偽装はどうやってやるんだ
7: 2019/08/22(木)12:01 ID:q.1bqDCk0(5/6) AAS
ログインしなくて開く
https://www.instagram.com/p/B1bKPTzBa6t/
ログインしないと開かない
https://www.instagram.com/aiko_yamaide/
8: 2019/08/22(木)12:02 ID:NjG26aac0(1/2) AAS
8
円広志に印税
9: 2019/08/22(木)12:02 ID:NjG26aac0(2/2) AAS
誤爆った
10: 2019/08/22(木)16:01 ID:q.1bqDCk0(6/6) AAS
InstagramのユーザーネームからIDに変換する方法ってあれば楽なんだけど
なければIDを登録しとかないとダメだな
11(1): 2019/08/22(木)21:57 ID:p/2djo0o0(1/2) AAS
InstagramOnV2C 2019/08/22版
https://www.dropbox.com/s/9wn19vdn9msgidk/InstagramOnV2C_20190822.zip?dl=1
Instagramの投稿をV2Cのスレ形式で表示するjsです
Instagramにログインして使用する場合はストーリーズの取得も可能です
Instagramの仕様に依存するので規制などで将来的には、現在実装している機能が使えなくなる可能性があります
説明はzip内のreadme.txtに
絵がある説明は 2chスレ:software
以下を修正
・UAをChromeの最新に修正(InstagramCommon.js)
・WEBページ形式でユーザのトップページを取得する際に以下の修正
(getInstagramLists.js、script/system/getdat_sub/instagram.js)
1) UAを指定するように修正
2) クッキーを空で送るように修正新着があった場合に自動でスレを更新する機能を追加
・getdat.jsに爆サイやらしたらば用に入れた修正を反映(Instaとしての修正はありません)
・スクリプトコンソールに表示するメッセージいログを修正(InstagramTools.js)
(ReferenceTab.txt以外全部修正)
省8
12: 2019/08/22(木)21:58 ID:p/2djo0o0(2/2) AAS
書き直し
InstagramOnV2C 2019/08/22版
https://www.dropbox.com/s/9wn19vdn9msgidk/InstagramOnV2C_20190822.zip?dl=1
Instagramの投稿をV2Cのスレ形式で表示するjsです
Instagramにログインして使用する場合はストーリーズの取得も可能です
Instagramの仕様に依存するので規制などで将来的には、現在実装している機能が使えなくなる可能性があります
説明はzip内のreadme.txtに
絵がある説明は 2chスレ:software
省19
13: 2019/08/23(金)06:41 ID:zbJ7VhSE0(1/2) AAS
>>11
インスタがまだ不調
なんか直しててミスってる状態?
ウェブブラウザですら
ログインしてないでユーザのトップページを開こうとするとログイン画面にリダイレクト
ログインしてユーザのトップページを開こうとするとエラー
14: 2019/08/23(金)10:19 ID:RhsGXJY.0(1/5) AAS
cookieとかぜんぜんわからんから修正できない
user idを手動で探して登録しておいて
Query_Hash = '472f257a40c653c64c666ce877d59d2b'で一覧jsonを取得
https://www.instagram.com/p/xxxxxxxxxx/を読み込んで
フルネーム取得のやりかたにかえようかな
15(1): 2019/08/23(金)12:37 ID:RhsGXJY.0(2/5) AAS
https://www.instagram.com/p/xxxxxxxxxx/
これは連続5回しか読めないのか
16: 2019/08/23(金)13:20 ID:RhsGXJY.0(3/5) AAS
>>15
勘違いスクリプトのバグだった
なんとか出来た
17: 2019/08/23(金)15:08 ID:RhsGXJY.0(4/5) AAS
Query_Hash = '472f257a40c653c64c666ce877d59d2b'で一覧jsonを取得してると
たまに429のエラーを吐き続けるがまた正常に戻る
18: 2019/08/23(金)22:36 ID:zbJ7VhSE0(2/2) AAS
規制を掛けてるのか
バージョンアップに失敗してるだけなのか
さっぱり判断がつかん・・・
>インスタ
19: 2019/08/23(金)23:11 ID:RhsGXJY.0(5/5) AAS
2秒スリープさせると429エラーが減るかも
なんとなく調子がいい
回数の問題だったら意味ないけど
20: 2019/08/24(土)07:24 ID:a5vnex5w0(1) AAS
1秒スリープだと429エラーになるが
2秒スリープにすると429エラーにならないみたい
21: 2019/08/26(月)17:15 ID:w5xgRg2w0(1/2) AAS
v2c.createHttpRequestのresponseCodeはバグってる
getContentsAsString()を実行すると正常な値を返すが
何もしないと-1を返す
22: 2019/08/26(月)20:08 ID:TaBlUg3Y0(1/2) AAS
createHttpRequestは通信開始の宣言をするだけで
実際の通信はgetContentsAsStringやgetContentsAsBytesでやってるので
getContentsAsXXXXX実行しないと-1が返ってくるのは仕様
23: 2019/08/26(月)20:24 ID:w5xgRg2w0(2/2) AAS
紛らわしいな
24: 2019/08/26(月)21:07 ID:TaBlUg3Y0(2/2) AAS
そうしとかないとsetpropertyでUAとかCookieを弄れなくなるの
var hr = v2c.createHttpRequest()
でhrmlまで取得しちゃうとUAとかCookie偽装のの介入ができないでそ?
(UA偽装しないとUAはV2C/xxxxxで飛んじゃうし)
だから
var hr = v2c.createHttpRequest();
hr.setRequestProperty(key, val);
var html = hr.getContentsAsString()
if(hr..responseCode == 200){
}
省2
25(1): 2019/08/27(火)09:11 ID:MtEOvmWU0(1) AAS
ID非表示のレスを抽出するスクリプトないでしょうか?
26(2): 2019/08/27(火)13:04 ID:ORbIOgLs0(1) AAS
analysis_slipがV2C+でしか使えないのが辛い
27: 2019/08/27(火)17:40 ID:8mYL0da20(1) AAS
//書き込み欄の.jpg:origを?format=jpgに変換
// ${SCRIPT:} ReplaceTwitterjpg.js
var vcx = v2c.context;
var th = vcx.thread;
var wp = th.openWritePanel();
var text = wp.message.text + '';
wp.message.text = text.replace(/.jpg:orig/g, '?format=jpg');
28: 2019/08/29(木)17:48 ID:fcqMAabg0(1/3) AAS
java8にしても最新のRhinoをダウンロードすれば使えるらしいが
V2Cでも問題なくRhino用スクリプトが動くのかな?
29: 2019/08/29(木)17:49 ID:fcqMAabg0(2/3) AAS
java7だとjavascriptでclassが使えないから不便
30: 2019/08/29(木)17:52 ID:fcqMAabg0(3/3) AAS
class使えないのか入れるのやめた
31(2): 2019/08/30(金)11:52 ID:Eo9B2w9E0(1/2) AAS
>>25
透明非表示にしないでラベルをつけて
そのラベル使って検索欄で検索とか?
>>26
レス表示欄から起動するjsに一応改造はできたんだけどパクっていいのなんだろうか?
32: 2019/08/30(金)12:13 ID:CIOEqCW20(1) AAS
>>31
V2C+の人に承諾取るべきだけど連絡できなければ無断使用になるのかな
個人的にはその改造スクリプト欲しいです
33(2): 2019/08/30(金)21:31 ID:Eo9B2w9E0(2/2) AAS
>>31
パクることにします
で、とりま簡単に
https://1.bitsend.jp/download/d5d51a63bda0212208bb1682116e91b1.html
パス:hyqeRazu
使ったことないロダですが今日から14日間有効
オリジナルjs→したらばスレ:computer_43680
外部コマンド>一般>レス表示に登録
非V2C+用定義 CoCoから-CoCoまでが今回追加個所
出力結果に関してはテキストポップアップで表示
https://i.imgur.com/r1ftgKN.png
https://i.imgur.com/KtyeRNK.png
省3
34: 26 2019/08/31(土)10:01 ID:sK1nEW4E0(1) AAS
>>33
ありがとうございます。動作確認し正常に反映されました
35(1): 2019/09/01(日)21:24 ID:foZQGgok0(1) AAS
subject.jsのワッチョイの一部機能が変になりました
「// ss = lastmodify_loader(ss,bd,cx);」の//を削除し上書きした後
スレ一覧のカラムにあるワッチョイを表示に移動させ、V2CMOD-Z設定の一般3の
subject_lastmodifyと連携するにチェックを入れsubject.jsを再読み込み後
スレ一覧を更新するとワk!などが出ますがNo.が全部現状とは異なる数字に変わります
subject.jsのどの箇所をどう書き換えればスレタイの順位番が元通りに戻るのでしょうか
36(1): 2019/09/02(月)10:20 ID:Lq4fRX7c0(1/3) AAS
>>35
subject.txtとlastmodify.txtのデフォの並び順が異なるせいです
lastmodify_loaderを有効にした場合はsubjectの内容を捨ててるんで
並び順がlastmodify準拠になります
で、お試しで修正してみました
https://www.dropbox.com/s/0b42exmft2su986/subject_201909020002.zip?dl=1
(自分が使ってるsubject.jsをそのまま上げてます)
933行目からがlastmodify_loaderの機能になります
sort_by_subjectTxtを1にするとlastmodify.txtから取得したスレ一覧の並び順を
subject.txt準拠に並べ直します(並べ直し処理の分遅くなります)
但し並べ直しの対象はsubject.txtとlastmodify.txtのどちらにもあるスレで
どちらかにしか存在しないスレは並べ替え後のスレ一覧から漏れます
37: 2019/09/02(月)10:22 ID:Lq4fRX7c0(2/3) AAS
933行目から最後までがlastmodify_loaderの機能になります
38(1): 2019/09/02(月)17:00 ID:JRffVouE0(1) AAS
https://www.instagram.com/graphql/query/?query_hash=08574cc2c79c937fbb6da1c0972c7b39&variables={"cached_feed_item_ids":[],"fetch_media_item_count":12,"fetch_media_item_cursor":"''"}
これはhttps://www.instagram.com/で表示される元のAPIみたいなんだけど
これをV2Cのスクリプトで読むとcookieのds_user_idを認識しないみたで読むことが出来ない
どうすれ読めるようになるんだろう?
39: 2019/09/02(月)20:23 ID:Lq4fRX7c0(3/3) AAS
レスポンスの中に複数の「set-cookie」がある場合
一つの「set-cookie」しか取り込めなかった記憶があるから
それでds_user_idが入ってる「set-cookie」が捨てられたとか?
40: 2019/09/02(月)22:41 ID:hHjqee/o0(1) AAS
>>36
subject.jsを置き換え更新しましたがソフトウェア板と自作PC板では問題ありませんでした
常駐板は20、閲覧するスレは60程度と比較的少ないせいか新着書き込み
受信完了するまで1分強程度ですし概ね満足しています
迅速な対応ありがとうございました
41: 2019/09/03(火)13:01 ID:wB57hml20(1/3) AAS
https://www.instagram.comにアクセスするときは
Request HeadersにCookie設定しないで
Form Dataでユーザー情報を渡してるみたいだけど
V2Cだとどうやってアクセスすればいいんだ?
42: 2019/09/03(火)14:38 ID:RryWoQG60(1) AAS
HttpRequestオブジェクト
createHttpRequest(java.net.URL u,String d)
URLuに対してデータdをPOSTするHttpRequestオブジェクトを作成する。(dはそのまま送信されるので適切にencodeされている必要がある。)
のdでjsonを飛ばすしかないんじゃないの?
43: 2019/09/03(火)15:48 ID:wB57hml20(2/3) AAS
https://www.instagram.com/?Form Data=access_token=…
をURLエンコードでつなげればいいみたい
44: 2019/09/03(火)16:32 ID:wB57hml20(3/3) AAS
やっと出来た
原因がわかったCookieを読み込む処理を読んでないバグだった
Cookieが空白なら失敗するに決まってる
いろいろ勉強になったからいいか
45: 2019/09/05(木)12:38 ID:d0ZYGpxw0(1) AAS
>>38
これは投稿時間でソートしてないので
タイムスタンプを終了判定に使えない
DATファイルに存在してるかで判断するしかないので処理に時間がかかるが
これで規制を回避して更新チェックができるようになった
46(1): 2019/09/07(土)11:11 ID:KejHdGyo0(1/4) AAS
[0][node][taken_at_timestamp]
[1][node][taken_at_timestamp]
このjson配列をtaken_at_timestampでソートする場合
下の関数に添字とか入れても動きそうにないから
[node]の下の子ノードで配列作り直してソートするしかないのかな
//. 比較関数
function compare( a, b ){
var r = 0;
if( a.age < b.age ){ r = -1; }
else if( a.age > b.age ){ r = 1; }
return r;
}
myArray.sort( compare );
47: 2019/09/07(土)12:45 ID:KejHdGyo0(2/4) AAS
これを使えばいいのか
mapがなんなのかもわからん
Sorting maps
一時的な配列に実際にソートに使用する値を抜き出して、その一時的な配列をソートし、 一時的な配列から元の配列を正しい順序で取得します。
// ソート対象の配列
var list = ["Delta", "alpha", "CHARLIE", "bravo"];
// 一時的な変数mapへ位置とソート順の値を保持します
var map = list.map(function(e, i){
return {index: i, value: e.toLowerCase()}
})
// 減算値を使用してmapをソートします
map.sort(function(a, b) {
return a.value > b.value ? 1 : -1;
});
// 結果の順序を反映して取得します
var result = map.map(function(e){
return list[e.index]
})
48: 2019/09/07(土)12:59 ID:D2G.Ujc20(1/2) AAS
[node]の下に[taken_at_timestamp]が一つしかない、かつ他のnodeのtaken_at_timestampと内容が重複しないなら
var 連想配列 = {}
連想配列[[0][node][taken_at_timestamp]] = [0]
連想配列[[1][node][taken_at_timestamp]] = [1]
でtaken_at_timestampをキーにした連想配列にして
それをソートすりゃいいんじゃね?
https://www.sejuku.net/blog/27965
49: 2019/09/07(土)14:23 ID:KejHdGyo0(3/4) AAS
java rhinoのjavascriptにはDOMがないから検索の面倒な処理をしてたのか
javaならDOM操作が出来るからjavaを使えばいいのか
50: 2019/09/07(土)15:51 ID:KejHdGyo0(4/4) AAS
java8にrhino-1.7.11.jarを入れてみたが
エラーになったり変な動作したりして使えなかった
51: 2019/09/07(土)15:55 ID:smCQbhXI0(1) AAS
そもそもあれは7に入れるようのものだから競合して当然だよ
52: 2019/09/07(土)16:03 ID:4T9WhHBo0(1) AAS
ソートされたnodeが欲しいなら>>46でいいじゃない何を無駄に難しくしてるんだ
53: 2019/09/07(土)20:28 ID:D2G.Ujc20(2/2) AAS
V2C-R 2.11.8とその派生はRhinoと相性が悪い
54: 2019/09/08(日)11:19 ID:xWlPuNsQ0(1/7) AAS
上手くいきそうだけどHTMLが完璧じゃないとエラーになる
var factory = javax.xml.parsers.DocumentBuilderFactory.newInstance();
var documentBuilder = factory.newDocumentBuilder();
var document = documentBuilder.parse(Url);←67行目
var root = document.getDocumentElement();
//ルート要素のノード名を取得する
v2c.alert("ノード名:" +root.getNodeName());
67行目org.xml.sax.SAXParseException: The element type "img" must be terminated by the matching end-tag "</img>".
省2
55(1): 2019/09/08(日)12:48 ID:xWlPuNsQ0(2/7) AAS
https://jsoup.org/download
これでhtml読めそうだからやってみるか
56: 2019/09/08(日)15:20 ID:xWlPuNsQ0(3/7) AAS
>>55
これ使ったら成功したみたいだが
ドキュメントがわかりにくいのとサンプルプログラムがないから
子ノードを配列にしてfor文で回すのがわからん
javaのlib/extフォルダにjarを入れとけば設定なしで使えたので助かった
var document = org.jsoup.Jsoup.connect("http://www.babymetal.com/jp/").get();
v2c.alert(document.title());
57: 2019/09/08(日)17:23 ID:xWlPuNsQ0(4/7) AAS
var document = org.jsoup.Jsoup.connect("http://www.babymetal.com/jp/").get();
var elements = document.getElementById("news_list");
var newurl = elements.getElementsByTag("li");
v2c.alert(newurl.html());
<a href="http://www.toysfactory.co.jp/artist/babymetal/metalgalaxy20191011 " target="_blank">
urlを抜き出したいが上手くいかない
もう少しでどうにかなりそう
58(1): 2019/09/08(日)18:18 ID:xWlPuNsQ0(5/7) AAS
javaだとこのfor文使えるが
for (Element element : allElements)
javascriptのfor( of )はオブジェクトに使えないから次が読めない
困った
javaのfor文を使える裏技ないのかな
59: 2019/09/08(日)18:48 ID:xWlPuNsQ0(6/7) AAS
>>58
html化にして\nで区切って配列にして
for文で一行ずつ再オブジェクト化したら
URLを抜き出せた
var array = newurl.html().split('\n')
for(var i = 0; i < array.length; i++) {
var doc = org.jsoup.Jsoup.parse(array[i]);
var doc2 = doc.getElementsByTag("a");
var attr2 = doc2.attr("href");
}
間抜けだけどしょうがない
matchで抜き出すよりはこっちの方がスマートだな
60(1): 2019/09/08(日)18:53 ID:epth1PWU0(1/4) AAS
newurlはliが複数あるから配列で帰ってくると思ったんで
for(var i=0; i<newurl.length; i++){
var elm = newurl[i];
var a = elm.getElementByTag('A');
}
とかで抜いてキャいいんじゃね?
#2年くらい作ってないんで全部記憶
61: 2019/09/08(日)18:57 ID:xWlPuNsQ0(7/7) AAS
>>60
newurl.lengthはundefinedでダメだった
62: 2019/09/08(日)19:20 ID:epth1PWU0(2/4) AAS
そっかJavaScriptじゃなくてjsoupだもんね
63: 2019/09/08(日)19:38 ID:epth1PWU0(3/4) AAS
lengthじゃなくてsize()だとどう?
64(1): 2019/09/08(日)21:38 ID:epth1PWU0(4/4) AAS
https://jsoup.org/apidocs/org/jsoup/nodes/Element.html
を見るとgetElementsByXXXXXXが返す結果の型はElementsクラス
で
https://jsoup.org/apidocs/org/jsoup/select/Elements.html
を見るとElementsクラスのの上位クラスはArrayListクラスなんで
http://mdiz1103.xsrv.jp/wordpress/w_1_programming/?p=12
https://i.imgur.com/wOv29iW.png
のArrayListの方ぽい
65: 2019/09/09(月)06:07 ID:GRxunFzs0(1/2) AAS
>>64
ありがとう
これで出来た
var document = org.jsoup.Jsoup.connect("http://www.babymetal.com/jp/").get();
var element = document.getElementById("news_list");
var elements = element.getElementsByTag("a");
for(var i = 0; i < elements.size(); i++){
var attr = elements.get(i).attr("href");
v2c.alert(attr);
}
66: 2019/09/09(月)07:16 ID:GRxunFzs0(2/2) AAS
URLは.absUrl("href")を使えば../xxx系を
http://www.babymetal.com/jp/news/?id=110
に変換してくれるみたい
var document = org.jsoup.Jsoup.connect("http://www.babymetal.com/jp/").get();
var element = document.getElementById("news_list");
var elements = element.getElementsByTag("a");
for(var i = 0; i < elements.size(); i++){
var attr = elements.get(i).absUrl("href");
v2c.alert(attr);
}
67: 2019/09/10(火)09:29 ID:YnDKZ6oI0(1) AAS
jsoupの欠点
org.jsoup.Jsoup.connecを使うとこれがあると処理が止まる
<meta http-equiv="Refresh" content="0;URL=https://l-tike.com/concert/mevent/?mid=389230">
htmlをv2cで取得してorg.jsoup.Jsoup.parse(html);した方が安全だった
68: 2019/09/11(水)19:13 ID:cUdt5LCA0(1) AAS
jsoupを使うとこういうことが出来るらしい
常識なんだろうけど便利でビックリした
変数Elementsを変更するとセレクト元の変数Docの内容が変更されてた
最後にテキスト化すればHTMLtoTEXTが簡単に出来そう
var Doc = ArticleDoc.select(".news_txt").last();
//画像テキスト化
var Elements = Doc.select('img[src]');
for(var i = 0; i < Elements.size(); i++){
var AbsUrl = Elements.get(i).absUrl('src');
Elements.get(i).text(AbsUrl);
}
69(1): 2019/09/12(木)15:58 ID:xRBdcWSM0(1/2) AAS
jsoupのHTMLtoTEXTスクリプト出来たが
一部文字化けするから使いものにならなかった
変換しない文字
–
~
◼︎
70: 2019/09/12(木)18:53 ID:sFPzbDMk0(1/4) AAS
>>69
多分これっしょ
https://qiita.com/motoki1990/items/fd7473f4d1e28c6a3ed6
71: 2019/09/12(木)19:29 ID:jpyok6Cs0(1) AAS
チルダは本当によくある
あと文字コードは基本的なようでいて実は慣れてても時々躓く面倒な問題
72: 2019/09/12(木)20:05 ID:sFPzbDMk0(2/4) AAS
いつ化けたかやね
jsoupに取り込んでDOMにした時点か
HTMLtoTEXTした時点か
outputに出力/表示した時点か
73: 2019/09/12(木)20:25 ID:xRBdcWSM0(2/2) AAS
jsoupオブジェクトをhtml()で出力すると化けないが
text()で出力すると化けるみたい
74(1): 2019/09/12(木)21:05 ID:sFPzbDMk0(3/4) AAS
試しに
https://www.dropbox.com/s/den49d6u6389da5/getdat.js_20190508232210_.zip?dl=1
の2308行目をコピペしてtext()した結果を置換してみて
jsはUTF-8
https://i.imgur.com/w1Drgs0.png
これで文字化けをコントロール出来れば文字化けを回避できるはず
したらばの過去ログをgetdatjsでスレを表示する場合に文字化けを回避するために使用してる置換です
75: 2019/09/12(木)21:19 ID:sFPzbDMk0(4/4) AAS
jsの文字コードはUTF-8だよね?
76: 2019/09/13(金)08:04 ID:b6cSdxb60(1/6) AAS
HTMLがUTF-8でDATがShift_JISだから漢字はこれでも化けるのか
text()はxx;文字を削除してるみたいなので
&#を全角にして最後にに戻したら漢字は上手くいったが
–が化ける
77: 2019/09/13(金)11:45 ID:My4Y/o2c0(1) AAS
Javaはよく知らんがcharsetの変換とかないの
ないならtextをバイト列経由でshiftjisにするとか
78: 2019/09/13(金)11:48 ID:b6cSdxb60(2/6) AAS
HTMLは↓これで記述してるのに
&Eacute;
&eacute;
jsoupの中ではÉとéの文字に変換されてた
エスケープをそのままにさせる設定があればどうにかなるのに
79: 2019/09/13(金)12:32 ID:b6cSdxb60(3/6) AAS
v2c.writeLinesToFile(Thread.localFile, DatData, 'Shift_JIS');
これやると消えるみたいだから
変換不能文字→参照(G)を読み出して変えてやればいいのかも
80: 2019/09/13(金)14:20 ID:b6cSdxb60(4/6) AAS
Shift_JISにする前にこのコードにしたら文字化けがなくなった
& #65288;& #29694;& #22320;& #26178;& #38291;& #65289;
(現地時間)
81: 2019/09/13(金)15:06 ID:00XLl0kM0(1/3) AAS
なんか自分も通った記憶のある道でワロタ
全ての文字を数値文字参照(文字参照)に変換すると
文字化けは補償されるんだけどログが全部xxxxになって何が何だか分からなくなる
というオチ
82: 2019/09/13(金)15:16 ID:b6cSdxb60(5/6) AAS
昔janeとの互換性のためにShift_JISに変更したんだよな
83: 2019/09/13(金)15:32 ID:00XLl0kM0(2/3) AAS
【test】書き込みテスト_02
2chスレ:software
https://i.imgur.com/cOof1Xk.png
↑のWEBページソース
https://i.imgur.com/cc0VzGE.png
dat(SJIS)の中身
https://i.imgur.com/FOrYDjg.png
5ちゃんはSJIS、ベビメタのサイトはUTF-8だけど
Javaに取り込めばメモリ上は両方ともUTF-16?になるからWEBページの文字コードの違いは吸収される
で出力対象がなんなのかわからんけど例えば出力対象がSJISのdatでも可読文字を数値文字参照(文字参照)で保存しとけば
Javaのレンダラはdat中の数値文字参照(文字参照)を可読可能な文字に置き変えて表示してくれる
なんで文字化けする文字だけ数値文字参照(文字参照)に置き変えればいいのではと
あとサロゲートペアの考慮もいるのかな?
その辺やってるのが昨日上げたgetdat.jsのしたらば対応の処理
84: 2019/09/13(金)15:40 ID:00XLl0kM0(3/3) AAS
UNICODE周りのコード変換なら
https://www.marbacka.net/msearch/tool.php
が便利
85: 2019/09/13(金)17:04 ID:b6cSdxb60(6/6) AAS
v2cが使ってるエスケープ配列見つかったから
エスケープ系と>>74だけ数値化すればいいのか
86: 2019/09/14(土)08:00 ID:DhOH1CbI0(1/4) AAS
◼こういう文字はどうやって判断するんだ
文字をShift_JISにエンコードしてUTF-8でデコードして
文字と違っていたら数値文字参照にすればいいのかな
上位bitがなんちゃらとかさぱりわからん
87: 2019/09/14(土)12:52 ID:DhOH1CbI0(2/4) AAS
String str = "あ";
byte[] bytes = str.getBytes("SJIS");
String newStr = new String(bytes, "SJIS")
strとnewStrが違ったら数値文字参照にするで上手くいかないのかな
88: 2019/09/14(土)13:14 ID:rfao2vlI0(1) AAS
どういうアウトプットにしたいのか分からんから何も言えん
普通の絵文字だからフォントさえ入ってれば参照形式でも表示されると思うんだが
89: 2019/09/14(土)14:12 ID:DhOH1CbI0(3/4) AAS
これで上手くいった
俺天才かも
//【数値文字参照変換】
function EncodeChar(Text) {
var EncodeText = '';
var TextArray = Text.split('');
var BiteArray = [];
var JString = '';
var NewString = '';
for(var i = 0; i < TextArray.length; i++) {
JString = new java.lang.String(TextArray[i]);
BiteArray = JString.getBytes('SJIS');
NewString = new java.lang.String(BiteArray, "SJIS");
if(JString == NewString) {
EncodeText += TextArray[i];
} else {
EncodeText += '' + Text.charCodeAt(i) + ';';
}
}
return EncodeText;
}
上下前次1-新書関写板覧索設栞歴
あと 911 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.052s*