YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

Japanese subtitles

← 25-07 International Characters

25-07 International Characters

Get Embed Code
3 Languages

Showing Revision 1 created 07/21/2014 by osawakjvta.

  1. レイモンドさんからは
  2. アルファベット文字以外の文字を
    使うことについての質問がありました
  3. 彼が最初にスペイン語のテキストでプログラムを
    書いてPythonで実行したところ
  4. ASCII文字ではないという構文エラーが出たそうです
  5. IDLEで同じコードを実行した時にはそのエラーは出ず
    正しく動いたとのことです
  6. エンコーディングを変えたところ
    エラーは解消されたそうです
  7. そこで質問です
  8. “私たちは検索エンジンを構築していますが
    それが様々な言語のページを読んで”
  9. “ひょっとすると様々な言語のインターフェースを
    使うようにする場合に”
  10. “エンコーディングの問題が起きないようにするには
    コードをどのように変えるべきでしょうか?”
  11. “デフォルトの文字セットは
    どうするべきでしょうか?”
  12. レイモンドさん
    鋭い問題提起をありがとうございます
  13. 英語以外の言語を含む入力を受け取る場合は
  14. 文字セットが異なることに注意が必要です
  15. Webページを見るとヘッダの中に
  16. 使われている文字セットが書かれています
  17. これはHTTPプロトコルの一部となっていて
  18. ヘッダには文字セットを含むコンテンツのタイプが
    示されています
  19. 文字セットはいくつかの種類から選択されます
  20. 最も一般的なのがUTF-8と呼ばれるものです
  21. UTF-8が使っているエンコーディングでは
  22. 基本的な文字は7ビットだけで表現できます
  23. この文字セットはASCIIとして知られています
  24. これは英語で一般的な文字です
  25. 他の言語で使われているすべての文字は
    カバーしていませんが
  26. 小さなスペースで
    7ビット文字のエンコードができます
  27. 私たちがPythonで使ってきた標準の文字列は
    すべてASCIIです
  28. 各文字が1バイトです
  29. 1バイトでエンコードができるのは
    255文字しかありません
  30. したがってもっと多くの言語を扱いたい場合は
    もっと多くの種類の文字を扱う必要があります
  31. それを可能にするのがUnicodeです
  32. Unicodeは多数の文字を利用可能にする
    文字セットです
  33. 実質的には利用できる文字数が限定されない
    エンコーディングだと言えるでしょう
  34. Unicodeのエンコード方式のうち
    コードポイントが小さい場合は効率的で
  35. しかも多数の文字のエンコードを可能とするのが
    UTF-8です
  36. Unicodeは大抵のWebブラウザが使用しています
  37. これをPythonで扱うためには
  38. 標準文字列ではなく
    Unicode文字列を使う必要があります
  39. Unicode文字の組み込み型がありますので
  40. unicode関数を使用して
    文字列をUnicodeに変換できます
  41. そしてエンコーディングを
    Unicodeから他の文字セットに変える方法があります
  42. 標準的な英語の文字セットを使っていないテキストを
    扱えるような
  43. 検索エンジンを構築したい場合には
  44. Unicodeや様々な文字のエンコーディングに
    注意して対処する必要があります