I have the following code:
FName happy = FName(TEXT("happy"));
UE_LOG(LogTemp, Log, TEXT("%s"), *happy.ToString())
FName h = FName(TEXT("h"));
UE_LOG(LogTemp, Log, TEXT("%s"), *h.ToString())
FName index = FName(TEXT("index"));
UE_LOG(LogTemp, Log, TEXT("%s"), *index.ToString())
FName i = FName(TEXT("i"));
UE_LOG(LogTemp, Log, TEXT("%s"), *i.ToString())
FName joy = FName(TEXT("joy"));
UE_LOG(LogTemp, Log, TEXT("%s"), *joy.ToString())
FName j = FName(TEXT("j"));
UE_LOG(LogTemp, Log, TEXT("%s"), *j.ToString())
In the editor I see expected output:
LogTemp: happy
LogTemp: h
LogTemp: index
LogTemp: i
LogTemp: joy
LogTemp: j
But in packaged builds I find certain names unexpectedly capitalized:
[2018.02.23-21.08.07:946][ 0]LogTemp: happy
[2018.02.23-21.08.07:946][ 0]LogTemp: H
[2018.02.23-21.08.07:946][ 0]LogTemp: Index
[2018.02.23-21.08.07:946][ 0]LogTemp: I
[2018.02.23-21.08.07:946][ 0]LogTemp: joy
[2018.02.23-21.08.07:946][ 0]LogTemp: J
This is causing me trouble in other projects where I convert FNames to char* for comparison purposes. I know that FNames are case insensitive, so is there something unsafe about using them in this manor?
You can find the project that generates this output here.
Update 5/1/2018: Removed project hosting.