public function testDetect() { $encode = new Encode(); $encode->detect('Calendrier de l\'avent façon Necta!'); $charsets = $encode->charset(); $this->assertEquals('UTF-8', $charsets['from']); }
/** * Attempts to detect the charset that the html was sent in. * * @return bool */ protected function detectCharset() { // set the default $encode = new Encode(); $encode->from($this->defaultCharset); $encode->to($this->defaultCharset); if (!is_null($this->options->enforceEncoding)) { // they want to enforce the given encoding $encode->from($this->options->enforceEncoding); $encode->to($this->options->enforceEncoding); return false; } $meta = $this->root->find('meta[http-equiv=Content-Type]', 0); if (is_null($meta)) { // could not find meta tag $this->root->propagateEncoding($encode); return false; } $content = $meta->content; if (empty($content)) { // could not find content $this->root->propagateEncoding($encode); return false; } $matches = []; if (preg_match('/charset=(.+)/', $content, $matches)) { $encode->from(trim($matches[1])); $this->root->propagateEncoding($encode); return true; } // no charset found $this->root->propagateEncoding($encode); return false; }