C# 바이트 계산하는 법
https://holjjack.tistory.com/145
// 의심질환 (청구용)
aMemoEdit1.EditValueChanged += (sender, e) =>
{
int messageSize = Encoding.UTF8.GetBytes(aMemoEdit1.Text).Length;
aLabelControl72.Text = messageSize.ToString();
if (messageSize > 500)
{
AMessageBox.ShowInstant("입력데이터는 500바이트를 초과할 수 없습니다.");
Byte[] bt = Encoding.UTF8.GetBytes(aMemoEdit1.Text);
aMemoEdit1.Text = Encoding.UTF8.GetString(bt, 0, 498);
aLabelControl72.Focus();
SuspecDisease.Focus();
aLabelControl72.Text = messageSize.ToString();
}
};
나는 default가 유니코드로 잡혀있는 것같아서 한글이 2byte로 잡혔다.
따라서 UTF8로 잡아주니까 한글이 3바이트로 잡힘.
왜 한글이 3byte로 잡혔나?
오라클 때문이다. 오라클에서 캐릭터 셋에 따라서 한글이 3바이트로 잡힌다.
오라클 한글 바이트 정리
https://emunhi.com/view/201807/25144849338?menuNo=10012
업무하다가 놓친 것들
판정용과 청구용이 있었는데, 판정용은 의사선생님들이 판정문을 다 적으시면 청구용에서 다듬어서 결과지에 출력이 되는 프로세스를 가지고 있었다. 그러나 나는 판정용에도 위와 같이 바이트수를 제한하여 결과적으로 판정용을 제대로 기입하지 못하게 했다.