주어진 ASCII 값에 대한 문자를 얻는 방법
주어진 ASCII 코드의 ASCII 문자를 어떻게 얻을 수 있습니까?
예를 들어 코드 65가 "A"를 반환하는 메서드를 찾고 있습니다.
감사
"A"(a string
) 또는 'A'(a char
)를 의미합니까?
int unicode = 65;
char character = (char) unicode;
string text = character.ToString();
C #의 기본 문자 인코딩이므로 ASCII가 아닌 유니 코드를 참조했습니다. 본질적으로 각각 char
은 UTF-16 코드 포인트입니다.
string c = Char.ConvertFromUtf32(65);
c는 "A"를 포함합니다.
이것은 내 코드에서 작동합니다.
string asciichar = (Convert.ToChar(65)).ToString();
반환: asciichar = 'A';
이를 수행하는 몇 가지 방법이 있습니다.
char 구조체 사용 (문자열 및 다시)
string _stringOfA = char.ConvertFromUtf32(65);
int _asciiOfA = char.ConvertToUtf32("A", 0);
값을 캐스팅하기 만하면됩니다 (문자 및 문자열 표시).
char _charA = (char)65;
string _stringA = ((char)65).ToString();
ASCIIEncoding 사용.
이것은 전체 바이트 배열을 수행하기 위해 루프에서 사용할 수 있습니다.
var _bytearray = new byte[] { 65 };
ASCIIEncoding _asiiencode = new ASCIIEncoding();
string _alpha = _asiiencode .GetString(_newByte, 0, 1);
형식 변환기 클래스를 재정의 할 수 있습니다. 이렇게하면 값에 대한 멋진 유효성 검사를 수행 할 수 있습니다.
var _converter = new ASCIIConverter();
string _stringA = (string)_converter.ConvertFrom(65);
int _intOfA = (int)_converter.ConvertTo("A", typeof(int));
클래스는 다음과 같습니다.
public class ASCIIConverter : TypeConverter
{
// Overrides the CanConvertFrom method of TypeConverter.
// The ITypeDescriptorContext interface provides the context for the
// conversion. Typically, this interface is used at design time to
// provide information about the design-time container.
public override bool CanConvertFrom(ITypeDescriptorContext context,
Type sourceType)
{
if (sourceType == typeof(string))
{
return true;
}
return base.CanConvertFrom(context, sourceType);
}
public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType)
{
if (destinationType == typeof(int))
{
return true;
}
return base.CanConvertTo(context, destinationType);
}
// Overrides the ConvertFrom method of TypeConverter.
public override object ConvertFrom(ITypeDescriptorContext context,
CultureInfo culture, object value)
{
if (value is int)
{
//you can validate a range of int values here
//for instance
//if (value >= 48 && value <= 57)
//throw error
//end if
return char.ConvertFromUtf32(65);
}
return base.ConvertFrom(context, culture, value);
}
// Overrides the ConvertTo method of TypeConverter.
public override object ConvertTo(ITypeDescriptorContext context,
CultureInfo culture, object value, Type destinationType)
{
if (destinationType == typeof(int))
{
return char.ConvertToUtf32((string)value, 0);
}
return base.ConvertTo(context, culture, value, destinationType);
}
}
It can also be done in some other manner
byte[] pass_byte = Encoding.ASCII.GetBytes("your input value");
and then print result. by using foreach
loop.
Sorry I dont know Java, but I was faced with the same problem tonight, so I wrote this (it's in c#)
public string IncrementString(string inboundString) {
byte[] bytes = System.Text.Encoding.ASCII.GetBytes(inboundString.ToArray);
bool incrementNext = false;
for (l = -(bytes.Count - 1); l <= 0; l++) {
incrementNext = false;
int bIndex = Math.Abs(l);
int asciiVal = Conversion.Val(bytes(bIndex).ToString);
asciiVal += 1;
if (asciiVal > 57 & asciiVal < 65)
asciiVal = 65;
if (asciiVal > 90) {
asciiVal = 48;
incrementNext = true;
}
bytes(bIndex) = System.Text.Encoding.ASCII.GetBytes({ Strings.Chr(asciiVal) })(0);
if (incrementNext == false)
break; // TODO: might not be correct. Was : Exit For
}
inboundString = System.Text.Encoding.ASCII.GetString(bytes);
return inboundString;
}
I believe a simple cast can work
int ascii = (int) "A"
Here's a function that works for all 256 bytes, and ensures you'll see a character for each value:
static char asciiSymbol( byte val )
{
if( val < 32 ) return '.'; // Non-printable ASCII
if( val < 127 ) return (char)val; // Normal ASCII
// Workaround the hole in Latin-1 code page
if( val == 127 ) return '.';
if( val < 0x90 ) return "€.‚ƒ„…†‡ˆ‰Š‹Œ.Ž."[ val & 0xF ];
if( val < 0xA0 ) return ".‘’“”•–—˜™š›œ.žŸ"[ val & 0xF ];
if( val == 0xAD ) return '.'; // Soft hyphen: this symbol is zero-width even in monospace fonts
return (char)val; // Normal Latin-1
}
참고URL : https://stackoverflow.com/questions/4648781/how-to-get-character-for-a-given-ascii-value
'development' 카테고리의 다른 글
"DateTime"은 무엇입니까? (0) | 2020.11.06 |
---|---|
crontab에 대해 virtualenv를 설정하는 방법은 무엇입니까? (0) | 2020.11.06 |
디스크에 쓰지 않고 .zip 파일 다운로드 및 압축 해제 (0) | 2020.11.06 |
emacs 기본 글꼴 크기 및 글꼴 유형을 어떻게 변경합니까? (0) | 2020.11.06 |
WebStorm 세미콜론 검사를 비활성화하는 방법은 무엇입니까? (0) | 2020.11.06 |