Qt itself seems returning a sane value for an invalid locale string. However, this made kcm_fcitx endless looping by some reason, eating up the whole stack and crashes (or something like that). So, it's probably an issue of the code flow itself.