Jump to content

Accented characters/Special characters in Skyrim


kuneko

Recommended Posts

Hello, I will make a topic here to discuss my problem.

I'm french, and wanting to have accented characters (such as é è à and others) in my character's name and/or enchanted items, I didn't find a solution anywhere so I tried to resolve the damn thing myself :tongue: .

Well, I found that Skyrim is coded in UTF-8 for most of it, and by searching in Interface.bsa, I found a file named fontconfig.txt.

By opening it, I found the last line to be validNameChars, and after many tests, I had the idea to write the UTF-8 characters code for all the accented characters in French I could type without using a combination of keys (such as Alt+Code or Right Alt).

 

In short, I added this to the line: éèêëÊËà âäÂÄùûüÛÜîïÎÃôöÔÖç

It corresponds to éèêëÊËàâäÂÄùûüÛÜîïÎÏôöÔÖç

 

And then saving the file, and dropping it into skyrim/data/Interface. And then, miracle happens, I can name my characters and my enchanted items with those special characters. It displays correctly in the main menu, and save menu.

 

But, because there is a but... Whenever an item (such as Jarl's Letter) with an <Alias=Player> is read, I can observe that in my name, the special character is not displayed correctly, and still in his UTF-8 form.

 

Exemple: If I name my character étoile, in the main menu, skill menu, it is shown as étoile, but in the letter, it is shown as étoile.

So there is something I don't understand right now :tongue:, because I do not know if it is because the Alias=Player isn't in UTF-8 (so Papyrus isn't?) or if it is, but it does not recognize when the two characters side-by-side have to make another one.

 

So maybe some of you, who are much better in programming than me, can help in permitting future players from all over the world to have accented and special characters in their names without any bugs.

 

Sorry for my english if it is not clear enough :tongue:

 

Well, I succeeded and succesfully made the game read everything correctly using UTF8 so topic closed.

Edited by kuneko
Link to comment
Share on other sites

Depends on your Skyrim Language, it may be easy or hard :p, but I will explain:

Skyrim primary encoding is UTF-8, and secondary (to avoid unknown characters and crash to desktop) is Windows-1252 in most languages (except Japanese, Chinese and such).

So Skyrim will check the strings and if he found a single character not in UTF-8 format like é, è, à or even your Ø, it will switch to Windows-1252 (it's important to explain this for after).

 

So basically, you have to find the UTF-8 format of your Ø and add it to the validNameChar line of fontconfig.txt (which is in Interface.bsa of you want to extract it).

Your Ø in UTF-8 is Ø so all you have to do is typing Ø in validNamechar and you'll be able to type the character Ø in Name of the player and names of enchanted items (theoretically, because you can't use Left Alt or Right Alt in typing boxes (so you may need to rebind temporary one of your keys or something, and it may causes conflicts).

 

The main problem is, in english, you have no accented characters, so Skyrim will always read the texts in UTF-8 format, so the only special characters you could encounter are the ones in your Name, but in other languages it is different. The translators in French for exemple wrote the strings using the Windows-1252 format, using é and not é (which is the UTF-8 form of é) so when Skyrim only have normal characters or é, it will be displayed as é in game, but if it finds é and special characters in the same text, it will switch to Windows-1252 and never replaces é with é.

 

So exemple: if you have this sentence (it's french): "Je m'apelle étoile, le héros de Bordeciel!" it will be displayed the same in game, but if you just have: "Je m'apelle étoile!", in game it will be displayed as "Je m'appelle étoile!"

 

The stupididty of french translators, is that they didn't wrote in UTF-8 format, so because your name can only have special characters in UTF-8 format, it means each time you'll have a text with your Alias in it (such as "Alias=Player"), if there is some characters like é, à, è in the rest of the text (or in the name of locations or people and they appeared in the text with the text replacement script "Alias= "), your name will be wrongly displayed. So the solution is to take a software like TESVEdit, or TESVTranslator and replace all the special characters from your strings in Windows-1252 into their UTF-8 counterparts, so it can be quite tedious.

And at the end, it will surely be conflicting with mods created because creators don't take the time to write their changements or texts in UTF-8 format.

 

So that's it, if you have english strings, all you have to do is put the UTF-8 forms of the characters you want in the validNameChar in fontconfig.txt. And if you have Skyrim in another language, you 'll have to replace all the texts in the game for it to be read in UTF-8, it's long, and can bring conflicts, so it is better not to do that, and giving up on special characters in your name, thanks to the official translators, who by not writing in UTF-8 made the modders not taking the habit to do the same (which is stupid, because Skyrim main encoding IS UTF-8, and it should never encode in Windows-1252, as it is just to prevent crashes provoked by modded content with unknown characters).

Link to comment
Share on other sites

You can put it at the start, after the ", so your line will be like this:

 

validNameChars "Ø`1234567890-=~!@#$%^&*():_+QWERTYUIOP[]ASDFGHJKL;'ZXCVBNM,./qwertyuiop{}\\asdfghjkl;'zxcvbnm<>?|¡¢£¤¥¦§¨©ª«®¯°²³´¶·¸¹º»¼½¾¿ÄÀÁÂÃÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþ ÿ "

 

Well if you did put it in the line between the " ", well I don't know why your game won't run, did you extract the fontconfig.txt from the .bsa then modifying the file you extract and put it in data/ then interface ?

I just tried to add your character in my line, and it works well, and it's even in the Windows-1252 form, so there shouldn't be any problem.

 

Be sure you put it between the " " (after the " if you wrote it at the start, or before the " if you wrote it at the end), that's what is in the line, if you put something outside this, it will not be recognized by the game.

Link to comment
Share on other sites

  • 5 weeks later...

You can put it at the start, after the ", so your line will be like this:

 

validNameChars "Ø`1234567890-=~!@#$%^&*():_+QWERTYUIOP[]ASDFGHJKL;'ZXCVBNM,./qwertyuiop{}\\asdfghjkl;'zxcvbnm<>?|¡¢£¤¥¦§¨©ª«®¯°²³´¶·¸¹º»¼½¾¿ÄÀÁÂÃÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþ ÿ "

 

Well if you did put it in the line between the " ", well I don't know why your game won't run, did you extract the fontconfig.txt from the .bsa then modifying the file you extract and put it in data/ then interface ?

I just tried to add your character in my line, and it works well, and it's even in the Windows-1252 form, so there shouldn't be any problem.

 

Be sure you put it between the " " (after the " if you wrote it at the start, or before the " if you wrote it at the end), that's what is in the line, if you put something outside this, it will not be recognized by the game.

 

Any chance it may work on American keyboards? We Dutch people use those (and Americans too, I suppose, maybe even more countries). If we type right alt+L it becomes a ø but Skyrim just gives me a l. I wanna give my nord character a nordic came, but it seems I can't use the ø unless I buy a Scandinavian keyboard (I heart those had a ø button), which isn't really an option...

 

EDIT:

Never mind, just chanced my keyboard setting to Norwegian ^^. When I now typed a ; it became a ø :smile:.

 

EDIT: don't never mind. When I enter the name with a ø and finish race menu, character keeps in race menu mod and game doesn't move away from my face, making it impossible to anything. It act as if racemenu is still on, but the menu itself is gone.

Edited by TDOGH
Link to comment
Share on other sites

  • 1 year later...
  • 2 years later...

Where do i add the "éèêëÊËà âäÂÄùûüÛÜîïÎÃôöÔÖç"
in this line:

validNameChars "`1234567890-=~!@#$%^&*():_+QWERTYUIOP[]ASDFGHJKL;'ZXCVBNM,./qwertyuiop{}\\asdfghjkl;'zxcvbnm<>?|¡¢£¤¥¦§¨©ª«®¯°²³´¶·¸¹º»¼½¾¿ÄÀÁÂÃÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþ ÿ "

I tried to both place it next to the first " and before the second " , but both times when I started, in the menu, instead of letters, squares appeared.

https://i.imgur.com/kQ70elx.jpg

EDIT: So i found the problem, it's the bsa Unpacker and Packer, when i pack it, it turns a 33 Mb folder in a 7Kb bsa file, with all the txt files empty.

EDIT II: I used Archive.exe to pack it, and it stays at 33, but the squares still appear.

Edited by F4ntasbolic
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...