Izaya Orihara Posted May 24, 2015 Author Share Posted May 24, 2015 Okay; yep. It seems to be upgraded installations that it's reproducible on. I wonder if this is why it couldn't be reproduced by staff... This happened after setting username to: ?A Username It still didn't "Delete" the account though, so I suspect (and hope) the account is still there, somewhere, Dorian. I have my fingers crossed for you. BUT... I had a look at my database; more specifically Collation's. Take a peak at this noise: Now I would like to say Collation doesn't imply causation... xP But then I remembered what @Ralf H. said earlier: An emoji is a 4byte character, right? So I looked into it and found that it was utf8_unicode_ci which I changed to utf8mb4_unicoode_ci. This didn't fix it, and I found that the actual name was also stuck on this collation, so I changed that to utf8mb4_unicoode_ci and all. This didn't work either. But silly me, it's also varchar(255) -> Which I changed to BLOB, (As a type)... Low and behold: Fixed it. that sounds so foreign to me dumb it down for me lol Link to comment Share on other sites More sharing options...
NoGi Posted May 25, 2015 Share Posted May 25, 2015 An emoji is a 4byte character, right? So I looked into it and found that it was utf8_unicode_ci which I changed to utf8mb4_unicoode_ci. This didn't fix it, and I found that the actual name was also stuck on this collation, so I changed that to utf8mb4_unicoode_ci and all. This didn't work either. But silly me, it's also varchar(255) -> Which I changed to BLOB, (As a type)... Low and behold: Fixed it. And here I was thinking I made a mistake choosing utf8mb4_unicoode_ci over just utf8_unicoode_ci. lol Link to comment Share on other sites More sharing options...
Tripp★ Posted May 25, 2015 Share Posted May 25, 2015 that sounds so foreign to me dumb it down for me lol Dumb it down? In a few words... Wait for IPS. xP In seriousness; you're basically putting Emoji into a field that (in the database) can't support it. Instead of stripping the incompatible character out - it blanks the whole field. DO NOT FOLLOW MY STEPS IN "FIXING IT" because (and I only found this out this morning) it will lockout the other accounts saying it's not in the database. I will look at how a clean install of IPS4 does it and see if I can come up with a working solution, although I don't recommend doing anything until IPS Support tells you to, as I am still learning about all of this stuff myself and just sharing what I find out. At the moment I get the following error "The Display Name you entered does not belong to any account. Make sure that it is typed correctly." And here I was thinking I made a mistake choosing utf8mb4_unicoode_ci over just utf8_unicoode_ci. lol In the converter (the thing we had to run before upgrading) I did select utf8mb4_unicoode_ci. For some reason the converter didn't work properly. I'm going to go out on a limb here and say @Dorian Gray used the UTF8 converter before updating from 3.4.x to 4.0.x which would make sense because we had to. I have no idea if s/he used utf8mb4_unicoode_ci or utf8_unicoode_ci but I know for sure I picked the former, definitely not the latter - because it was conscious decision that had to be debated with my fellow administrators for our site. For example: utf8mb4_unicoode_ci: Slower Speed + Emoji Support <--- Which we wantedutf8_unicoode_ci: Faster Speed + No Emoji Support My guess is for whatever reason the converter failed, and whilst I did make a backup; I did the conversion way before Christmas and I was only told to back up incase it didn't work and after it did work I wouldn't need the backup. If this is a bug that was fixed in the converter that I will need to convert my old database again I'd be rolling back to before September 2014; which is unacceptable, or... I can restart my forums which is outrageously unacceptable. My only choice is to hope that the converter can do it properly or manually change the types and collations myself; or wait and see if IPS can suggest anything better. I sort of did this whilst I was waiting, in the hopes that it could help locate and track down where the problem was and what was causing it. I also tried to see in what circumstance would it cause one's account to be deleted; I can't answer that because I don't know. I wasn't able to get an account to be deleted, just their username. Edit: A fresh install has all tables set to utf8mb4_unicode_ci and the display name table is set to varchar(255) utf8mb4_unicode_ci not blob utf8mb4_unicode_ci which didn't work for me when I played around with it yesterday from a converted one. I should have known it wasn't that simple. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.