Problem with character encoding ( danish æ ø å ) when using page handler include files in hook_menu(). When I use an .inc file to handle my page output, all the danish special characters (Æ, Ø and Å) shows up as question marks, i.e. they are rendered with the wrong character encoding.
This following module works as expected.
stack_exchange_minimal.module
&lt;?php
/**
* Implements hook_menu().
*/
function stack_exchange_minimal_menu() {
  $items['mypage'] = array(
    'title' =&gt; 'Minimal example',
    'page callback' =&gt; 'mypage',
    'access arguments' =&gt; array('access content'),
    'type' =&gt; MENU_CALLBACK,
  );
  return $items;
}

function mypage() {
 return 'ÆØÅ - æøå'; //outputs 'ÆØÅ - æøå'
}

When I split the code up in two files, however, it doesn't.
stack_exchange_minimal.module
&lt;?php
/**
* Implements hook_menu().
*/
function stack_exchange_minimal_menu() {
  $items['mypage'] = array(
    'title' =&gt; 'Minimal example',
    'page callback' =&gt; 'mypage',
    'access arguments' =&gt; array('access content'),
    'type' =&gt; MENU_CALLBACK,
    'file' =&gt; 'stack_exchange_minimal.pages.inc',
  );
  return $items;
}

stack_exchange_minimal.pages.inc
&lt;?php
function mypage() {
 return 'ÆØÅ - æøå'; //outputs '��� - ���'
}

I have tried passing the text through a render array instead of just dumping a string as the return value, but whith the same results.
I'm using drupal core version 7.31
What can I do to work around this issue?
The problem was, as Andy pointed out, that the file wasn't encoded in UTF-8.

The .inc file was created from the context menu in Windows: 'New' -> 'Text Document', which defaults to the ANSI encoding.

The solution is simply to convert the file to UTF-8, that can be done for example in Sublime Text by choosing 'File' -> 'Reopen with Encoding'. Other text editors have similar commands.