tusbasaのブログ

業務や勉強中に調べたことを自分用にメモするブログ

【ruby】文字化けとエンコーディング

Net::HTTP.getやURI.openで取得したテキストデータはデフォルトでASCII-8BIT(バイナリまたはバイトストリームとしても知られています)として扱われる。 これをUTF-8に変換するにはtext.encode("UTF-8")では文字化を起こす可能性がある。 text.encode("UTF-8", "Shift_JIS")だと正しく変換できた。取得した文字列をrubyに何の文字コードとして認識させるかを伝えないといけない。 上記の場合textに格納されている文字列がShift_JISエンコードされていたのでそれを指定した。

encode("変換後の文字コード", "変換前の文字コード")

参考

【Nuxt.js】watch deepオプション

指定したプロパティの中にある、プロパティの値も監視する(入れ子・ネストしたプロパティ)

大きなデータ構造で使用するときにはコストが高くなります。使用するときは、どうしても必要なときにだけ使用し、パフォーマンスへの影響に注意しましょう。

参考

ja.vuejs.org

【Javascript】レキシカルスコープ

レキシカルスコープは 関数を定義した時点でスコープが決まる。
B()を実行した時にA()も実行されるが、A()が定義された時点のxが参照される為、最初の行のvar x = 10; が適用される。

var x = 10; 
function A(){
  console.log(x);  //この時の静的なスコープはx=10
}
function B(){
  var x = 1000;  //ここでもxが定義されている
  A();  //この時のxは10?1000?
}
A();  //10
B(); //-> 10 (1000ではない!)

参考

wemo.tech

PROPFIND リクエスト

WebDAVプロトコルの一部。
特定のリソース(通常はWebサーバー上のファイルやディレクトリ)に関するプロパティを取得する。
不正なPROPFINDリクエストによる情報漏洩のリスクあり。

動作

  • リクエスト: クライアントがサーバーに送信。
  • ボディ: 特定のプロパティを指定するXMLを含むことがある。
  • 応答: XML形式でプロパティ情報を含む。