Hi dev_cw,
I examine the code and I share partially your feedback:
If the user inputs the collation as utf8_general_ci it will correctly set the charset to utf8, however if the user inputs only utf8 it will return a blank string. I don’t know of a solution, a suggestion would be to provide a pull down selector to control how the collation is input rather than leaving it to the user.
When you keep the default value for collation (utf8_general_ci) for your first installation at the end you get an empty value for the connection_charset

This issue is due to the fact that $_POST[’database_connection_charset’] is not set in the action.options.php (the page which follow the connection page). So at the end, whatever the value of collation you get an empty connection_charset empty !
So to correct this issue, I suggest the following improvement:
1/ check the form of the collation provided by the user. For that I have added a new javascript function in the action.connection.php. script tested under firebug. This script test that your collation has the form *_*_xx with xx=ci or xx=cs or xx=bin.
if(wrongCollation(f.database_collation.value)) {
alert('<?php echo $_lang['alert_collation']?>');
f.database_collation.focus();
return false;
}
function wrongCollation(col) {
p1=col.indexOf('_');
if (p1>0){
col2 = col.substr(p1+1,col.length-p1-1);
p2=col2.indexOf('_');
if (p2>0){
pcs=col.indexOf('cs');
pci=col.indexOf('ci');
pbin=col.indexOf('bin');
if (pcs>0 || pci>0 || pbin>0) return false;
}
}
return true;
}
If it is not the case a new message is displayed to the user: "Your collation is incorrect". For the moment I have updated only the english lang file. The others files are not changed.
$_lang["alert_collation"] = 'Your collation is incorrect!';
2/ in the action.options.php the $_POST[’database_connection_charset’] should be initialised as follow:
if ($installMode == 0) {
$_POST['database_connection_charset'] = substr($_POST['database_collation'], 0, strpos($_POST['database_collation'], '_'));
}
else if ($installMode == 1) {I have tested the nominal case (a first installation). I need now to test that it is ok for the migration case.
I got the source code from SVN, but once my tests will be finished,
how could i deliver the new version of these files ? and how can I get the translation for the other languages (for French and Spanish it’s ok) ?
Find enclosed the changed files to test again these changes