• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.

XF 1.1 weird characters after import

#1
Hey Guys,

I've moved my xenforo installation over to a new web host and have some issues with encoding i believe. For instance apostrophies now show up like: "’" and pound signs show up as "£" etc..

How can i fix this?

Thanks,

Michael
 

Jake Bunce

XenForo moderator
Staff member
#5
Yep. This is clearly a character encoding issue. Since the source is already UTF8 this thread might help:

http://xenforo.com/community/threads/converting-to-utf-8-issues.21406/#post-270879

He modified this file:

library/XenForo/Importer/Abstract.php

And changed this code:

Code:
	/**
	 * Convert the given text to valid UTF-8
	 *
	 * @param string $string
	 * @param boolean $entities Convert &lt; (and other) entities back to < characters
	 *
	 * @return string
	 */
	protected function _convertToUtf8($string, $entities = null)
	{
		// note: assumes charset is ascii compatible
		if (preg_match('/[\x80-\xff]/', $string))
		{
			if (function_exists('iconv'))
			{
				$string = @iconv($this->_charset, 'utf-8//IGNORE', $string);
			}
			else if (function_exists('mb_convert_encoding'))
			{
				$string = mb_convert_encoding($string, 'utf-8', $this->_charset);
			}
		}

		$string = utf8_unhtml($string, $entities);

		return preg_replace('/[\xF0-\xF7].../', '', $string);
	}
}
 
#6
Oh - I guess this will only fix it if i'm importing? The site was imported from phpBB a long time ago, i just moved hosts recently.. can you confirm?

Thanks,

Michael
 

Jake Bunce

XenForo moderator
Staff member
#7
The importer won't fix corruption in the source database. I assumed the corruption was happening during your import to XenForo.
 

Brogan

XenForo moderator
Staff member
#9
It sounds as if the characters were corrupted during the export/import from the old to new host.

You would have to use SQL queries to replace any existing content in the database.

Unless you can redo the export/import.
 

Mike

XenForo developer
Staff member
#10
If it happened when moving servers, then it happened at one of three places:
  1. When the data was dumped. Should be unlikely, but depends on the method.
  2. During the transport. If the file was edited by someone, it could have been changed from UTF-8 to a Latin-1 style version, which would have this behavior.
  3. During the restore. Again, possible, particularly if done via a web interface rather than the command line.
I'd recommend redoing the dump (via mysqldump if possible) and retrying the restore via mysql at the command line. You may need your host to help.