[ flutter ] 한글깨짐현상
01. locale 설정
flutter pub add flutter_localizations --sdk=flutter
flutter pub add intl:any
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:linker_manager/screens/lauch_screen.dart';
import 'package:linker_manager/screens/main_screen.dart';
void main() {
runApp(const LinkerManager());
}
class LinkerManager extends StatelessWidget {
const LinkerManager({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
home: const LauchScreen(),
localizationsDelegates: const [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
],
supportedLocales: const [
Locale('en', 'US'), // English
Locale('ko', 'KR'), // Korean
// ... other locales the app supports
],
routes: {
'/MainPage': (BuildContext context) => const MainScreen(),
},
);
}
}

- 문제현상은 You've 문자열이 깨짐
02. 폰트설정
- assets 폴더에 폰트파일위치시킨이후
- pubspec.yaml 파일에 폰트 추가
flutter:
uses-material-design: true
assets:
- assets/images/
fonts:
- family: Roboto
fonts:
- asset: assets/fonts/Roboto-Regular.ttf
- asset: assets/fonts/Roboto-Bold.ttf
weight: 700
참고 : https://points.tistory.com/59
***결론 ****
response 자체를 utf-8로 디코딩해줘야한다.
if (response.statusCode == 200) {
// print("200 status");
final String responseBody = utf8.decode(response.bodyBytes);
// final results = jsonDecode(response.body);
final results = jsonDecode(responseBody);
final List<dynamic> dataList = results["res"]["data"];
** 추가 에러나는경우 **
this application's locale, ko_KR, is not supported by all of its localization delegates.
1. GlobalMaterialLocalizations.delegate:
• Material Design 구성 요소에 대한 로컬라이제이션을 제공합니다.
• DatePicker, TimePicker, Dialog 및 기타 Material 구성 요소에 대한 번역된 문자열과 지역별 형식을 포함합니다.
2. GlobalCupertinoLocalizations.delegate:
• Cupertino (iOS 스타일) 위젯에 대한 로컬라이제이션을 제공합니다.
• CupertinoDatePicker, CupertinoTimerPicker 및 기타 Cupertino 구성 요소에 대한 번역된 문자열과 지역별 형식을 포함합니다.
3. GlobalWidgetsLocalizations.delegate:
• Material 또는 Cupertino 디자인 언어에 속하지 않는 일반 위젯에 대한 로컬라이제이션을 제공합니다.
• 지역별 텍스트 방향 및 형식을 포함합니다.
위에 3가지를 추가해야 에러가 나지않는다.


