2023-11-16
1. 방법
// 변수를 선언하여 서버로부터 받아온 데이터를 저장합니다.
Map<String, dynamic> data = {};
// 서버에서 데이터를 가져오는 함수
Future<void> fetchData() async {
var response = await http.get(Uri.parse('http://10.0.2.2:8080/test'));
if (response.statusCode == 200) {
// 성공적으로 데이터를 가져온 경우
setState(() {
//data = json.decode(response.body); <- 이렇게 하면 한글 깨짐
data = jsonDecode(utf8.decode(response.bodyBytes));
});
} else {
// 데이터를 가져오지 못한 경우에 대한 처리를 여기에 추가할 수 있습니다.
log.i('Failed to load data');
}
}
해결 방법은 간단한다. data = json.decode(response.body); 와 같은 형식으로 json 문자열을 디코딩 하는 것을 utf8 로 디코딩 하면 정상적으로 한글이 노출된다.
우측과 같이 변경하면 된다. data = jsonDecode(utf8.decode(response.bodyBytes));