     extension = path.extname filePath
     extractor = extractors[ extension ]
     if extractor?
-      source = fs.readFileSync filePath
+      source = fs.readFileSync filePath, "utf8"
       { className: className, comments: comments } = extractor.extract source
       if className?
         docs[ className ] = comments

  className: ///
    \r?\n                     # Start of line (no indentation)
    class                     # "class" keyword
    \s+                       # whitespace
    (?:window.)?              # optional "window."
    (                         # Group captures class name
      [a-zA-Z0-9\$][\w]+      # JavaScript identifier

  controlComments: ( source ) ->
    comments = {}
    match = @regexComments.exec source
    while match != null
      [ full, commentBlock, identifier ] = match
      comments[ identifier ] = @commentText commentBlock
