我遇到了 Unicode(UTF-8) 和俄罗斯符号的问题。它给了我这个信息:
Текущий предмет: [["\u041E\u0431\u044A\u0435\u043A\u0442\u043D\u043E-\u043E\u0440\u0438\u0435\u043D\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0435 \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435"]]
ФИО преподавателя: [["\u041B\u0443\u043D\u0435\u0432\u0430 \u0415.\u0415."]]
另外,我如何使用正则表达式检查我没有匹配项?
IDE:NetBeans 7.3
我尝试解决这个问题:
- 在脚本开头使用魔法线(编码:utf-8)
- 文件 = File.new("rasp.txt","w:UTF-8")
我的代码:
#!/bin/env ruby #change encoding by using magic
# encoding: utf-8
#libs
require "open-uri"
# To change this template, choose Tools | Templates
# and open the template in the editor.
site_content = open("http://rasp.tpu.ru/view.php?for=10-116+%2F%D0%B0%D1%83%D0%B4%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D1%8F%2F&weekType=1").read
file = File.new("rasp.txt","w:UTF-8")
#поиск названия текущего предмета
search_subjname = site_content.scan(/<td class="current-day current-time">.*title="([^>]*)"/)
#поиск ФИО преподавателя
search_name = site_content.scan(/<td class="current-day current-time">.*title="[^>]*".*\s*<div.*\s*<a.*>(.*)</)
puts search_subjname
puts search_name
#
#
#Adding a subject
file.write("Текущий предмет: ")
unless search_subjname.empty?
if search_subjname.first.empty?
file.write("Сейчас пар в этой аудитории нет")
else
file.write(search_subjname)
end
end
#Adding FIO to file
file.write("\nФИО преподавателя: ")
unless search_name.empty?
if search_name.first.empty?
file.write("Преподаватель отсутствует")
else
file.write(search_name)
end
end
提前致谢