UTF-8 internalisation support is pretty big deal if you want to localise your forums for non-native English speakers. Thankfully though it isn't a complete trial to retro fit VBulletin with basic UTF-8 support. This guide assumes a remotely recent version of VBulletin (I was using 3.6.8 at time of writing) and that you are using MySQL 5.x.

Firstly you need to backup your forum database, the simplest way is to make use of the mysqldump utility.

mysqldump -uusername -ppassword forum_db_name > forum_db_backup.sql

Copy this output somewhere safe just incase of disaster. You can always revert to what you had by reimporting from this dumpfile. By default VBulletin applies the 'latin1' charset to its schema. We want to replace all instances of this in the dumpfile with 'utf8'.

sed -i 's/latin1/utf8/g' forum_db_backup.sql

Now it's time to take your forum offline. Navigate to: AdminCP -> VBulletin Options - > Turn your VBulletin on/off and change the forum active option to off. When this is done, just for good measure, 'chmod 000' the forum root directory.

Drop the old VBulletin forum database and create a new, utf8 friendly, one.

mysql --user=username --password=password --execute="DROP DATABASE forum_db_name; CREATE DATABASE forum_db_name CHARACTER SET utf8 COLLATE utf8_general_ci;"

It's time to convert the old database dump to use the UTF-8 character set. My favourite utility to do this is iconv. This util can easily be installed using yum, apt, emerge, synaptic or whatever package manager your distro relies on

iconv -f latin1 -t utf-8 forum_db_backup.sql > forum_db_backup-utf8.sql

Pump the fixed SQL back into your database.

mysql -uusername -ppassword forum_db_name < forum_db_backup-utf8.sql iconv -f iso8859-1 -t utf-8 vbulletin-language.xml > vbulletin-language-utf8.xml

Then import the language in the usual way AdminCP -> Languages & phrases -> Download/upload languages.