0

我遇到了 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

我尝试解决这个问题:

  1. 在脚本开头使用魔法线(编码:utf-8)
  2. 文件 = 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

提前致谢

4

1 回答 1

0

你可以试试这个?https://github.com/singlebrook/utf8-cleaner

这是从环境中删除无效 UTF-8 字符的好方法

于 2013-09-06T10:25:21.513 回答