Saving JSP as UTF-8 in NetBeans - java

i've got some jsp files from another developers and now need to work with them. When i add to the document any UTF-8 char and want to save the document, NetBeans automatically offers me saving in ISO-8859-1.
Actually i'm getting this message from NetBeans:
The index.jsp contains characters
which will probably be damaged during
conversion to the ISO-8859-1 character
set. Do you want to save the file
using this character set? (Yes/No)
NB didn't offer me any other option like saving the file as UTF-8 (as it should be already written in).
I don't know how to save those jsp files in the character set they are already written in.
And don't tell me, that changing the content of the file itself (which is uneffective due to including headers etc. from other files) is the only way...
http://forums.netbeans.org/topic8750.html

Firstly; don't forget to consider this line at top:
<%#page contentType="text/html" pageEncoding="UTF-8"%>
Secondly;
In the NetBeans folder there is a config file. There should be a line like that:
netbeans_default_options="-J-Xms32m -J-Xmx128m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m -J-Xverify:none -J-Dapple.laf.useScreenMenuBar=true"
Add this to the end of the line:
-J-Dfile.encoding=UTF-8
Thirdly:
NetBeans implements a project encoding setting.
To change the language encoding for a project:
Right-click a project node in the Projects windows and choose Properties.
Under Sources, select an encoding value from the Encoding drop-down field.
The encoding affects at least:
* how non-ASCII characters are displayed in the editor window when you open files
* Java file compilation of sources containing non-ASCII identifiers, string literals, or comments
* textual search for international characters over the project
Starting from NetBeans IDE 6.8, you can also specify the encoding that will be used at runtime. For example, this can be useful when the encoding for the operating system on which the application will run is different from your project's encoding.
To specify the encoding to be used at runtime:
In the Files window for your project, open nbproject > private > private.properties
Add the following line to the private.properties file and save changes:
runtime.encoding = < encoding >
This encoding will override the encoding setting for your project and will be used when running your application.
In general,
*.properties files always use ISO-8859-1 encoding plus \uXXXX escapes. (International characters will be displayed natively in the editor but stored as an escape on disk.)
*.xml files and some *.html files can specify their own encodings, regardless of the project encoding. For such files, the IDE's editor ignores the project encoding.
These may help you.
Sources for my answer that I used:
Link1: http://forums.netbeans.org/topic33.html
Link2: http://wiki.netbeans.org/FaqI18nProjectEncoding

Related

Eclipse won't save html file with dynamic charset

I'm using Thymeleaf template engine, and want to get the charset attribute value for the meta tag on the head block from my project properties, i.e :
<meta th:charset="${#environment.getProperty('html.charset')}">
But when I want to save my html file I get this pop-up error :
Save could not be completed. Try File > Save As... if the problem persists.
Reason:
Character encoding "${#environment.getProperty('html.charset')}" is not a legal character encoding.
I even tried to save the file from outside of eclipse, but when back on eclipse and want to open the file, I couldn't access it and got this error :
Unsupported Character Encoding
Character encoding "${#environment.getProperty('html.charset')}" is not supported by this platform.
Set Encoding...
I tried to suspend all validators on eclipse Preferences but this doesn't resolve the problem.
Any ideas for help ? Thanks in advance.
I'm on Mac OS and using Eclipse IDE for Enterprise Java and Web Developers, Version: 2021-09 (4.21.0).
The charset value is being used, regardless of the prefix, to read and write the file correctly. That there is a prefix on the attribute in a non-prefixed meta tag is a clue that it should be ignored by the normal encoding detection. Please open a bug report for this.
For a workaround, force the use of the encoding you want using the file's Properties dialog's Resource page (get there by right-clicking on the file).

Java eclipse converted my files to another encoding. How undo this?

Eclipse asked me if I want read a text file with UTF-8 and I agreed. Then all my files in the project where converted into this encoding. How to undo this or convert all files into Cp-1250 ?
When I click on the file I event don't have option to convert it into Cp-1250:
The drop-down values in the encoding combo only show the most common values. You can type in other values in the text area (the highlighted 'UTF-8' in your image).
The value you type must be something supported by the Java Charset class. Charset uses the name windows-1250 for that code page rather than 'CP-1250'
This setting does not actually convert the files, it only changes the way Eclipse reads the file.
You can also set a default for the Workspace in the Preferences on the 'General > Workspace' page.

A Java program to modify encoding

I want to compile my package, but I need to change the encoding to "utf-8 without bom". The package has hundreds java files, but I don't want to open every file and save them. So can I write a program to change all the file in the package? Or some tools to use?
As this post discussed, a Java source file without a BOM (byte order mark) is indistinguishable from a source file in plain ASCII. That being said, to convert your UTF-8 source files to UTF without BOM, you can simply strip off the leading BOM marker. Here is a link to code which removes the BOM mark for UTF-8 files:
http://www.javapractices.com/topic/TopicAction.do?Id=257
Try iconv. The program converts files between encodings, presuming you know what encoding the files are already.

Setting file name encoding

I have an input file in a defined encoding (utf8) from which I create different files whose names and content (again utf8) are taken form that input file.
My problem is that one a particular windows system, the files created do not have the correct characters. The content of these files is perfectly readable, but their names not.
Instead of Ü.xml, the file has the name ├£.xml.
On other Windows systems everything works fine.
The file content's encoding can be set in OutputStreamWriter's second argument, but the file name's encoding can not be set in new File(name) is seems.
Thanks.
Seeing two chars where there should be one UTF-8 multi-byte char ü. that Windows does not seem to have UTF-8 as file encoding. And a UTF-8 file was copied onto that system, like unpacking a zip file.
System.getProperty("file.encoding") should give the platform encoding. Maybe, remotely imaginable, it is some odd case not covered by Java resp. Windows, like a compressed directory, or a second external disk formatted with a non-UTF-8 capable file system.
Java uses the "platform's default charset" to convert file names to strings, and there's no way to change that behaviour through the standard API. You may, on some systems, be able to change the default encoding when you launch the JVM:
java -Dfile.encoding=cp1252 package.ClassName
On other systems the only way to affect the file name encoding is through the system locale settings. You can read more about that here: http://jonisalonen.com/2012/java-and-file-names-with-invalid-characters/

Maven filter garbling special characters

I have a resource file with the following string in it, note the special characters:
Questa funzionalità non è sostenuta: {0} {1}
After Maven does its process-resources (which I need for something else) I get:
Questa funzionalit� non � sostenuta: {0} {1}
Please tell me there is an easy fix to this?
The text files that held the strings were Java properties files. By default, most files in an Eclipse project inherit the default encoding scheme from the container (Eclipse) -- in my case that is UTF-8. If you just manually add a text file to the project it does not set it to UTF-8!!
So my properties files were actually encoded as ISO-8859-1. I changed the default encoding in Eclipse by clicking right on the file and selecting properties. I then was forced to re-enter ALL the special characters.
The other part of the fix was to tell the Maven process resource plug-in to use UTF-8 encoding while processing resources. Instructions for that are here:
http://maven.apache.org/plugins/maven-resources-plugin/examples/encoding.html
And of course I had to implement a UTF-8 ResourceBundle.Control because (for backwards compatibility) the detault ResourceBundle is still ISO-8859-1. Details on that class can be found here:
http://www.mail-archive.com/stripes-users#lists.sourceforge.net/msg03972.html
Hope this helps somebody someday.

Categories

Resources